Refactor labels and titles to be consistent

What was bothering me:
* Inconsistent API for labels and titles, such that sometimes you would
  pass a message key while other times you would pass a string or jQuery
  selection
* Misuse of LabeledElement as a mixin
* Insane API for window titles

What I did about it:
* All label and title APIs are now documented and behaving in a consistent
  manner
* Statically set messages are wrapped in a deferred message function that
  localizes the message at instantiation time, rather than class
  declaration time
* Now strings, or functions that produce strings are the defacto input to
  any label or title
* In some documented cases, it's OK to pass a jQuery object instead (this
  should probably be phased out, but is being used still)
* Cleaned up lots of documentation

Change-Id: Ic967b88d55daf48d365487e17f76488b3f02c60f
Merge "Refactor labels and titles to be consistent"