Added grid to handle collisions, other fixes

- Collisions now work on a grid system: instead of scanning every entity
for a collision, it only checks the entity in it's respective cell.
- Cleaned up a lot of code
- Fixed game time not accounting for time paused