Improved collision class

Tidied it up and refactored a bit, also added box collision since it's
likely to be used for enemy collisions.