Adjust the API & various fixes
- explicit public in interface definition
- making register()/deregister() in ThemeRegistry to have symmetric argument
- since registry could hold non-standard themes, the highest priority fall-back would need to consider this.