Merge the Simple Linux Port so we can support Linux with our Rasware!

All bugs that once were have been fixed.
Has been tested in Ubuntu, Debian, Arch, and Windows.
Although it would be great for more people to test it.

This miiiiiiight be supported in Mac with brew, however it has not been fully tested.

The Startup.c file is completely compatible with Keil, allowing the same code to be used on both Windows and Linux. Currently the setup tries to match Keil's build behavior. The Makefile can also be edited easily for custom settings.

Uses arm-none-eabi cross compilers for compiling, the lm4flash utility for flashing, and screen for uart communication. These can be invoked through make with the flash and uart commands. When lm4flash is invoked, it automatically resets the board. It also supports debugging through openocd, however there is no explanation for how to do this in the repo.

Also fixes several tiny issues such as a race condition with the NMI and some unnecessary queuing done by the scheduler.

There may be more small issues, but since Rasware is currently not needed by anything right now, it would be nice to merge the linux port to master sooner than later so we can centralize any new changes.