Add Multi-theme support

Adds multi-theme support using the new THEMES setting.
You can specify all the themes that you will be using in python
dictionary form. The keys to the themes can then be used by other themes
to inherit.

This is still a work in progress, I have a couple things left to do including testing everything completely, a minor thing to prevent default settings from getting overwritten, and adding documentation. 

I am just making a PR so that I can close the old one #1297. So much has changed that I feel the old PR needed to be closed completely.
I think I understand what you mean. Basically, you want to be able to implicitly inherit from a list of themes, in a configurable order. In addition you want to be able to inherit explicitly using the prefix system.

This commit only supports inheriting explicitly using prefixes and I cannot remember why there is no support for implicit inheritance of themes other than simple. That being said, I don't see why it would be impossible.

Unfortunately, I'm very busy with school right now and don't have the time to work on this. But, if anyone would like to implement multi-theme implicit inheritance, I see no reason why it wouldn't work.