Further refactoring of logic using components.

- Fixed bug in physics loop, was always starting at begin + 1 in inner loop instead of
    outer + 1.
- Currently the game is "restarted" by killing all entities then adding another game_hack.
    Since components are initialized upon adding and entities are only removed after a step,
    this causes the scene to essentially exist in a duplicated state for the frame. Right now
    I'm playing with enemies harming other enemies, due to the above if the enemy hasn't moved
    from its spawn point the new enemy will die instantly.
  Debating on method to solve. How entity/component creation interacts with a the concept of a
    single time-step is something I need to examine further. Some options to solve for now
    (for future reference):
    1 - Delay creation of entities and components by using some sort of creation message that is
      executed on the next step.
    2 - Delay adding of entities and registration of components by adding them to a temporary
      container that has its contents moved to the main container every step.
    3 - Always check if an engine component's owner is alive before using.
    4 - Delay logic component initialization until next frame (inconsistent with teardown).
    5 - Instead of just creating new entity/component and killing all other, kill entire space
        and create a new space (fix most isolated to this issue).