The main new finction is is(), which tests the type of a value. There
are also constants for each of the possible token types, and one new
conversion: number(), which converts a value into the most appropriate number
type. This change also reuses the functions in scanner.h for exracting ints,
floats, and identifiers from strings, rather than either rewriting the
functionality elsewhere, or using the general-purpose scan when only one
token type was of interest.