Surfaces and CollisionOrders

Created a new class called Surface. The purpose of a surface is to
provide a wall or medium which cannot be passed through. A surface has a
hard CollisionOrder of 0.

CollisionOrder is another new concept I added to PhysicsObjects. Objects
in the same CollisionLayer can interact, CollisionOrder determines how
they interact. Objects with a lower CollisionOrder drive how the impact
plays out. In this manner, an object that drives a fully elastic
collision striking a wall will not be stopped rather than transferring
momentum into the wall and moving it.