Add a type field for ZCC expressions.

- Constants can fill out the type field right away. Other expressions will need
  to wait until a later pass, after names have been resolved, so they get
  initialized to NULL.
Consolidate constant expression nodes into a single type

- Instead of having ZCC_ExprString, ZCC_ExprInt, and ZCC_ExprFloat,
  just use a single ZCC_ExprConstant. It should simplify type
  promotion and constant folding in the future.
Use %f instead of %g in AST dumps

- To ensure that floating point constants are identifiable as floating
  point, FLispString::AddFloat() now prints them with %f.
Accept constant definitions at global scope
Don't accept l as a suffix for floating point numbers in the scanner

- We're never going to support long doubles, so don't pretend.
Let the scanner returned unsigned integers

- The scanner already recognized the u suffix for unsigned integers, but
  otherwise ignored it. Return it as a proper token.
Let the grammar accept unsigned integer constants
Mark unsigned constants in AST dumps.

- Add the u suffix to unsigned integer constants printed in AST dumps.
Add missing closing " for string constants in AST dumps
Accept name constants in the grammar