Clean up code

Changed method overloading to make liberal use of optional parameters
Cleaned up some formatting
Reformat QFont.cs
Initial implementation of shader support and removing deprecated functionality.

VERY much a work in progress and still very 'hacky', but it partially works!
Will cleanup code, remove unnecessary methods and improve robustness in future commits.