Added a sprite cache to improve performance, this prevents the same image from being loaded from disk multiple times.

Code reformat to match the style guide

Added static entities, these are objects that can be added and removed from a level to alter the appearance or impart information for the user