Sped up collision detection, other cleanup.

- Collision detection is now done
  3 times - for x, y, and z directions. Despite
  this, performance has almost doubled.
- Input update functions now have a World parameter
  and returns an `IO (GameObject t)`.
- The type of ShaderUniform has changed from
  `(String, [GLfloat])` to `(String, IO [GLfloat])`
- Added documentation to some functions.
- Added performance stats to README.
- Performed cleanup requested by `ghc -Wall`.
- Added core.txt, the generated ghc core code.
- Minor organization / code cleanup, `INLINE`'d
  a few functions.