Rework colors and add multiple font support

This is a pretty major change, so I wonder what everyone thinks of it. I have tried to make the commit messages descriptive, so I hope they are clear enough. Everything should be 100% backwards compatible.

I have also included the necessary changes to the manual.