Cursor investigation

Fixes #223, partially fixes #167 (unsure if the rest of #167 is an issue). Its taken me a little while to fix but the cursors finally work. I had to convert all the normal windows cursors to SDL ones so we have some bonus cross platform capabilities. I've used @JeroenSack 's code for mouse over and rewrote it to be more C like. I haven't noticed any bugs so far. There are a few other cases that will set the cursor not using the SDL function but these are edge cases that can be dealt with when they are found.