Issue #3 : Theme support

Heavy internal BC break: adds a package abstraction layer
No usage BC break