* Remove dependency on SDL.h where possible
* Use run-time linking where possible
* Support both SDL 1.2 and SDL 2
* Add device enumeration when using SDL 2
The Emscripten build currently uses SDL 1.2 because it avoids the need
for "-s USE_SDL=2" when compiling. This may change later if there's
ever a need or if there's enough demand.