Refactor data types for core integration

- Refactored Map to inherit from MapObject
- Created Drawable object, which defines how to translate a core object
into a drawable
- Temporarily disabled all user management features (one feature at a
time)