Fixed image transparency and small refactoring

- added color helper class
- added sdl surface helper to create copies of surfaces with the same
parameters
- added base class for modules to hold on to static elements
- refactored rect and vector slightly
- added perlin noise 2d implementation
- made sdl color mask constants agnostic to endianess