Renamed Device class to Engine, Engine only holds a single pointer to each manager type now, and only one window