Removed the ability to invert the label.

This is to prepare for a new monochrome font rendering with configurable text color and background color.
Removed the ability to adjust Button label text_height.

A new system has been put in place, at any given time: `Button::label_.text_height() - 10 == Button::height_`.
Removed access to the internal Label used in the Button class.

The Button only allows the text itself to be changed. Much more encapsulated.
Finally, changed the render_text function to render a monochrome image with configurable text and background colors.

To compensate for this, both the Button class and the Label class have been updated.
 - Label class
   - Added two new construction options. An SDL_Color for both the text color and the background color.
     - Setters and Getters, etc.
 - Button class
   - Button::enabled(bool) has been moved to the implementation file.
     - It can no longer be inline because it checks whether the button is enabled and if it is, it sets the Label background color accordingly, it can reverse this as well.
Removed the explicit cache invalidation in the Label copy assignment operator.

This is because if an invalidation, for some reason, isn't necessary, why are we forcing it?