Use std::unique_ptr instead of std::shared_ptr
Add check for previous initialization of joystick

	* Close the SDL Joystick subsystem in the destruction of SDL_App

	These two modificcations make changing noticably faster.
Introduce performance enhancements for Line & GrayFrame classes

  - My unscientific testing has shown up to ~4..5% CPU decrease
    * Use internal boolean updated variable to track needs of updating its logic
    * GrayFrame needs to be updated now from the container class
Bug fix on (apparent) incorrect data size for individual colors
Remove un-necessary pure abstract class methods Update & Draw
Make setPosition method update specific coordinates X, Y

  * Previously, setting a (new) position would overwrite the whole coordinate
object -- including width & height -- which might have been useful data.
Clean up on BitmapFont, TrueTypeFont, IFont, Text classes

  - Remove use of Transformable class (we will be able to use local update
tracking variables now in the future)
    * IFont, Text inherits IDrawable
    * BitmapFont, TrueTypeFont inherits IFont
  * Remove default initialization on font_size argument in load method
  * Bug fix in TrueTypeFont regarding accidental overwrite of
font width & height by way of setPosition method
  * Slight re-organization of how some of the internal err checking in
TrueTypeFont is handled