Updated collisions

Pretty big update, being moved by a block can now be cancelled if there's going to be a collision, which fixes a few issues. Unfortunately it's not perfect, so it's being moved to it's own branch so I can do things like draw hitboxes.
Further collision revamps

A dynamicBox now returns a detection box, which is passed to the player. If the player is inside this collision box, the player will be moved with the block, but only in a single axis unless the player is perfectly within range (using the same system as collision detection). This doesn't apply if the player is just standing on top, then they just move with the block still.

This box is drawn with some horrible hacky code in main.cpp. It's marked DEBUG in comments.

It isn't perfect, and you can still phase into the platforms on the given layout. Fixes some stuff though I think.
Fixed 'sticky' collision

Huzzah! This should be most of the collision problems delt with. It's not perfect and there are a couple of loose ends that need patching up, but I think this is fine to merge. I also think the method I've used is a tad hacky so I'll revisit it once I've thought about it, but for now we're good.
Little big of debug left over
Merge branch 'collision'

Seems to fix collision issues, more work will be done on making it more efficient hopefully.