Add initial support for running Phaser in headless mode on the server
Add client class to the server to manage a single client

-Fix loading of tile maps
-Change to use shortid instead of node-uuid
-Refactor both server and client code
Remove Phaser from the server because it did not make any sense to use it there
Start implementing an authoritative server

- Change to use JSON instead of extending the entity class
- Add attributes to the entity class for easier serialization
- Change the room class to maintain the world state
- Add an entity factory for creating the entities (on the server)
- Combine the Express app and the HTTP server to one file (server.js)
- Rename the sprite component to actor and simplified it
- Add more configuration options
Add support for synchronizing entities
Add initial support for entity prediction and server reconciliation
Introduce classes for handling entity attributes, state and components

- Fix server reconciliation
- Refactor both client-side prediction and server reconciliation
- Enable the server-side game loop (one per room)
- Introduce a hashmap class and hashmaps classes for both clients and entities
- Introduce both client and server-side entity class
Move client entity and fix a minor bug the shared entity related to simulating states
Add proper documentation to all classes
Merge branch 'feature/authorative-server' into develop