Total refactoring of collision/order of operations

This is basically all to solve the problem of "when have I
stopped colliding with something?" I needed this in order to
properly implement ladders.

The order of operations for updating entities is VERY
specific and needs to stay the way it is, otherwise the
collision system breaks. (inotherwords: don't mess with
Level.render)

Right now, a LOT of garbage is generated in the render
method of the Level trait. This could be changed so that
the HashMap and GdxArrays are not re-created on each
frame, and instead use a static version of each inside
of a Level object.
Remove old doCollision method