Corrected parser issues with scopes

- These were introduced by the changes to '{' '}' use for initialization
- Had fixed vec3 and color initialization, but had a lurking problem
  with entity initialization statements
- All .cmp files are now compiling
- Still some errors in generated c++ code
- Need to finish support for entity declaration/initialization to
  correct those.
Completed support for dynamic creation of entities from Compose scripts

- Entities can now be created/initialized in compose scripts dynamically
- This means we can create entity factories, etc.
- Very cool stuff, and a long time coming
- Required a bunch of changes all over the place
- System apis now take a non-const Entity &, as they can modify the
  entity at an point.
- Fixed issue with MessageBlockWriter based code gen'd message classes
- Had never used them before, and they don't need to take block size and
  a block pointer in the constructor, so they no longer do
- Entity is now a type in compose... it's really just a u32 task id
- Namespaces are now working like we want
- They are implicit, but you can also "import as" an alias
- Need to change "import" to "using" since it will make more
  sense... that will happen in next checkin.
- We now disallow leading, trailing, and double underscores in
  identifiers.
- We convert '.' to '__' in our namespace management, and thus
  we must prevent the possibility of a collision by excessive use
  use of underscores in identifier names
- Added staging concept to Entities, where entities get "staged"
  until they are added to the game engine
- This allows for simple memory management as script writers create
  entities but may forget to add them to the engine
- Fleshed out concept of task ids that are less than kMaxThreads to
  implicitly refer to thread ids.
- This is a little non-obvious, but extremely useful when you want
  to send a message to a specific task master, but don't have a
  specific target task in mind
- Registry no longer sends init message to components and entities
- The init message has to happen after the explicit user initialziation
- Got rid of start.cmp, renamd to init.cmp
- Now start entity is init.start, which is actually HASH::init__start
  after the '.' -> '__' conversoin