Major improvements to RDFa and tweaks to Microdata support.

* Drop RDFa 1.0 support and replace it with RDFa 1.1
* Support the new RDFa 1.1 attributes as well as the number of other critical
  RDFa attributes we didn't support when we supported RDFa 1.0.
* <meta> and <link> will be supported for RDFa too now.
* Everywhere possible in both RDFa and Microdata IRI/URI accepting attributes
  will now only accept absolute IRIs/URIs that pass our protocol whitelist.
* IDs in Microdata's item ref and fragments in fragment-only IRIs in RDFa values
  will now be escaped using escapeId like id="" is.
* The Html class now has helpful handling for RDFa and microdata properties:
** itemtype, itemref, property, rev, and typeof accept arrays for their whitespace separated values.
** prefix accepts a key-value array of prefixes to IRIs that'll be turned into a prefix attribute.
** itemid and itemscope are now treated as boolean attributes.
* OutputPage now has a RDFa PrefixContext to register prefixes on and three methods for
  adding RDFa metadata to the <head>.
* ArrayUtils has setAdd and setRemove methods to shorten code treating arrays like sets.
* We have a new test class which uses an actual RDFa parser to verify that the modified RDFa
  we output into pages after sanitizing them contain the same graph of RDFa data as the user
  entered into them. These tests depend on EasyRdf which can be installed using composer's --dev option.

Change-Id: I2f5b5e5c2dcfe8d8a92487039d7409054b8f2dae