Rewrote the Window record and protocol to now return a new instance

  - Due to the fact that Clojure uses immutable data
  - Also added a new key named :visible used together with new function named hide
Renamed the function used to make a color transparent in a image
Added new helper functions to load a image resource and get its dimensions

  - Also began renaming sprite to image in the library
Renamed Sprite to Image
Added functions to scale, rotate and flip an image in a Image record