Allow changing theme on the fly (#2874, #14139, #14124)

* Updates UI and overlay container class names when the theme changes
* Initially verifies that the theme has actually been loaded (for the embed case)
  and class names have been properly set
* Forces a state change to all components to re-translate theme:// URLs
* Runs a full layout after the new theme has been loaded and activated

Change-Id: I5a7391abe1bb467130bbb4660e4829b43f3e4255