Large Modularisation Changes

Added a DataObject and FunctionObject abstraction that should both make
compatibility between the battle system and Pokéngine easier to manage,
as well as provide a unified system for objects to update continuously
and redraw when required. The game now uses an import file which should
make adding in new files and changing dependancies easier to manage.