Refactor objects to take GameEntities as obstacles instead of
Rectangles. Have them query the entities for their hit areas themselves
when they wish to do collision checks. Add GenericEntity just for
containing misc obstacles.