Fix sounds not playing after launching a game

Correctly re-initialize SDL_Audio after launching a game.
Add Volume control in Windows and Linux

Add volume control int Windows through the mixer API (until XP) and the
EndpointVolume API (Vista and above). Add volume control in Linux
through ALSA.
Convert AudioManager to use shared_ptrs.
Remove whitespaces from system config lines

to fix errors with files that have different line endings than the
system. Output a line number when something is wrong. This should be
done wherever reading from text files probably.
Check for GCC 4.7 or above

To prevent compilation errors beforehand.
Make master volume controllable via input

Standard mapping is +/- keys. Setting is written to es_input.cfg.
Update README

Update libraries and mention CMake and volume keys
Check for g++, not gcc and fix linking on Raspberry Pi

We actually need g++, not gcc. Also on the Pi the OpenGLES libs where
missing.
Poll joystick / HID devices without SDL on Windows / Linux

Get a list of joysticks / HID devices from the system (scan
"/dev/input/js*" on Linux / use GetRawInputDeviceInfo() on Windows) and
poll again every 5s via a SDL timer. If the list changes SDL can be
re-inited. Atm only a log message is written.
Hide and unhide mouse cursor via SDL on startup

This can also be made permanent by setting the environment variable
SDL_NOMOUSE=1 or 0, e.g. in $home/.bashrc
Fix volume control on Raspian. Correct some log messages

Main/Master volume mixer is called "PCM" on Raspian instead of "Master".
Improve singleton implementation

Still not thread-safe, but a bit better now. Should be made thread-safe
and maybe get converted to a template, if possible.
Fixed a few crashes, better support for higan

Fixed AudioManager/InputManager unsigned vs signed comparison warnings.
Fixed a FolderData sorting crash (I can't believe nobody's reported
this).
Fixed a GuiTheme crash for empty paths.
Added the %ROM_RAW% tag, for the unescaped ROM name - useful for higan
on windows.
SystemData will now add folders that end in EXTENSION as GameDatas, and
not recurse through them.  Also useful for higan.
Putting all our eggs in the CMake basket.
Updates to README.md

Somewhat better build instructions, links to Windows dependencies.
Convert image data only when necessary

Convert images only when they're not already 32bit
Swap SDL color masks for icon

So at least colors in the icon are displayed correctly
Better frame rate / time display

Calculate and update every 500ms which makes it much more readable
Added Vector2 class.
Basic GuiComponent refactor complete.
Put ComponentContainer directly in GuiComponent.
Necessary for parenting to allow getOffset(), etc.