Major Code Refactor to Version 2

Refactored everything into GameEngine object, and split some functions
into their own objects. Added example starter map, player sprite,
tilesheet, particle system, etc - engine is now playable from code
without any modification.