Accept only one identifier for class names.
Add the basic types to the global symbol table
Give all types a symbol table, not just structs and derivatives
Remove duplicated names from namedef.h

- Added an assertion in FName::NameManager::InitBuckets() that makes these
  errors easier to spot in the future.
Make global symbols survive GC runs

- The global symbol table was never marked by the GC, so anything pointed
  only by it was fair game to disappear.
- Don't clear the global symbol table during DECORATE parsing. Junk in
  there should be considered constant after initialization.
Capitalize some names that weren't before.

- Since this caused several duplicate names to creep in, try to be more
  consistant abount name capitalization.
Add a constructor to PSymbolTable that takes a parent table as input
Add D-style properties to the numeric types

- This is stuff like min and max for integral types and infinity and nan
  for floating point types.
Allow access to the numeric properties.

- Identifiers can now evaluate to type references.
- The dot operator can now find symbols in type references.