Move 'readOnly' from InputWidget to TextInputWidget

Per HTML spec [1], the 'readonly' attribute, and thus our 'readOnly'
configuration option, only applies to text inputs.

[1] http://www.w3.org/TR/html5/forms.html#the-readonly-attribute

Change-Id: If61294f27540b49547328094ab478f3aeff9b13b
OoUiTag: HTML-escape everything by default

Safety first!

Added a tiny helper class OoUiHtmlSnippet that needs to be used to
prevent string content from being HTML-escaped during output.

PHP:
  // will render as '&lt;foo&gt;'
  ( new OoUiTag( 'div' ) )->appendContent( '<foo>' );
  // will render as '<foo>'
  ( new OoUiTag( 'div' ) )->appendContent( new OoUiHtmlSnippet( '<foo>' ) );
JS:
  // will render as '&lt;foo&gt;'
  $( '<div>' ).text( '<foo>' );
  // will render as '<foo>'
  $( '<div>' ).html( '<foo>' );
  // will render as '&lt;foo&gt;'
  $( '<div>' ).append( document.createTextNode( '<foo>' ) );
  // will render as '<foo>'
  $( '<div>' ).append( '<foo>' );

Bug: 72542
Change-Id: I037a42b056c734c1844e916e8c12bd7eaaf82e70
Merge "Move 'readOnly' from InputWidget to TextInputWidget"
Merge "OoUiTag: HTML-escape everything by default"