added in assertion functionality
extended the range of options available for collision querying as well as implemented an actual raycast function for it too
added in a camera abstraction around sf::View so there's no longer a hard limit of 1 camera in the level, and the camera will be able to smooth track instead of just instantly snap to positions. The functionality is only partially implemented right now but I'm almost home now so I'm committing to transfer this to my desktop