[makefile] Add switch -Werror to treat warnings as errors. Add actual instruction for game-manager.cpp.
[Game Manager] Utilize parent class Config. Refactor main menu buttons into an array with new enum indexing instead of explicit member properties.
[main] Remove triangle slider demo.
[Triangle Slider] Add 'rect' parameter to constructor. Remove hardcoded positioning. Make slider respond better to the mouse position.
[Config, Game Manager] Change return type for setProperty from void to bool; 'true' meaning the instruction was understood, 'false' meaning the instruction was invalid.
[Game Manager] Change button array from ButtonReference to WidgetReference. Implement the Triangle Slider.
[Game Menu] Utilize 'Config' to load 'main-menu.cfg'.
[SDL Slider] Move default background creation method from SDL Manager to SDL Button Widget.
[Game Manager - Main Menu Config] Add 'widget_id', 'callback', and 'visibility'. Change 'action:create button' to 'create:button'. Change storage scheme for the widgets (again). Add config validation.
[Config] Change error message from 'Unrecognized' to 'Invalid'.
[Game Manager] Add support for Worship Slider.
[Game Manager] Fix alignment.
[Game Manager] Improve config error reporting (it should say what is wrong).
[Main Menu Config] Move triangle slider down. Add the worship slider.
[Game Manager] Change modes 'RUNNING' to 'PLAYING' and 'QUIT' to 'QUITTING'. Add mode 'PAUSING'. Add mode map.
[Game Manager] Move map-view to config. Change widget storage (yet again). Remove button index. Remove more hardcoded implementation stuff & load more stuff from config.

- Add a 'doNothing' call back for now until we can implement a better way of assigning callback functions from the config file.
- Rename the mode map from 'gameModeMap' to just 'modeMap'.
- Remove the 'widgetList' array entirely, in favor of a vector.
- Remove special treatment of the map view, and move it to the config file.
- Add a pause which shows the main menu again. We'll need to change the text of the New Game button to Unpause or Continue; this means retaining a handle on it, or making labels dynamic in some other way.
-- Maybe like having an 'initial_label' alongside a regular 'label' that is shown after the first transition.
-- I'm not sure I like this, though, because I can only thing of the 'New Game' button being one to change.
-- May a 'destroy_after' parameter, and a 'show_after' thing, and create two buttons, one for a new game and one to unpause.
- There's some code redundancy between New Game and Pause Game, so we should refactor this.
- Comment out the sliderCallback functions because they relied on the old widgetList array to grab the specific widgets.
-- We need a new way to access these widgets.
- Add a 'show_when' parameter so that a widget will be correctly shown or hidden based on the game mode.
- Change the 'visibility' parameter to 'initially'. The value is still 'hidden'.
- Assign values to the GameMode so they can be OR'd together for the above mentioned 'show_when' parameter.
- Create new class 'GM_Widget' to store the union between a widget and it's visible modes (as well as a friendly name for logging).
- Add a 'pause' button via main-menu.cfg & remove all the 'widget_id' junk.
[SDL Widget] Fix issue with widgets being set to the wrong state when being shown after being hidden.