Merge part 1

Improved server funcionality.
When a state fails to load it returns to the StartState - indirectly
fixing the map failing to load bug.
Fixed collision detection.
Added temporary fix for the overriding player bug.
Refactored the PlayerSprite and Player classes heavily and documented
where appropriate.
Removed most warnings from the GameClient.
Moved level related stuff into a seperate class both on the client and
server.
Assets.h is now a shared resource as both the client and server require
access to the file.
Improved level loading on client and server - now has Bounds layer which
contains collision bound data, and now has dynamic scaling.
Updated level readme.txt.