Image: Re-implement surface locking methods

* Cleaned up code for SDL2 -- derives from nomlib's SDL1 methods
Image: Introduce save_png method

* Window: save_screenshot method now defaults to saving as a PNG

* examples/app: Update filename constant string to match png
file-type
Image: Re-implement an initialize method variant

* Cleaned up code for SDL2 -- derives from nomlib's SDL1 methods
Image: Add additional err checks in initialize

* I also rename bpp argument to bits_per_pixel, for clarity's sake
scale2..4x: Rename bpp argument to bits_per_pxiel

* (Clarity's sake!)
* Update our include guard name
Texture: Introduce getter alpha method

* set_alpha method: use nom's definitions instead of SDL's for
alpha opacity (for sake of future porting)
Use SDL_PIXELFORMAT_ARGB8888 pixel format

* On the two platforms I’ve tested on, SDL_PIXELFORMAT_ARGB8888 is
the most optimal format for us to use

See #6
examples/app: Dump gfx info at initialization
Image: Introduce getter method — alpha
Image: Fix crash due to improper pointer release
BitmapFont: Use uint32 for sheet w/h iterations

* Fixes a sign mismatch compile warning
Texture: Re-factor resize method (almost working)
Texture, Sprite: Remove resize (stretch) method

* This method is now obsolete with built-in SDL2 functionality
Texture: Update a few documentation comments