Implemented an Engine class.

The purpose of the engine is to encapsulate the assets, systems and entities of a game. It is an abstract class which specific game engines will derive from.