Merge SDL2 Port

SDL2 is an API that is fully cross-platform, and can easily be turned into a full C++ GUI framework with some work. Multi-window support has also been added to make SDL more advanced.

The branch has been worked on for a while and deserves a merge.