More memory manager stuff for Compose scripts

- Added alignement feature to all mem.h related allocation functions
- Now you can align alloc's and new's, default is still 16 byte
  alignment
- BlockMemory now supports collect, which is garbage collection to
  be called after each update/message handler in Entity class
- Collection is pretty simple, and reference tracking is also
  going to be pretty simple, because no reference can survive past
  a given frame unless it is held by a property or field in a
  Component or Entity.
- So, garbage collection will be nice, simple, and fast
- Still need to write unit tests, but we're almost ready to start
  using BlockMemory in the engine for scripted objects