First sprint of the theme class.

Holds a theme registry and allows for themes to act as ”subthemes”.
This allows for inheritance of templates, css, js etc.