Reworked collision detection, see desc.

Can now check against a type, a specific object or a static rectangle.
object checking does not account for speeds correctly yet (so no moving
vs moving checking)

also added Rectangle which will be implemented into other things soon