Add core engine clock

Add a core engine clock to calculate fps and delta time. The clock also attempts to run the game loop at a target fps.