[AS7-462] Patch generation analysis of version diff

Create the actual patch file following difference analysis
[AS7-462] Cleanup metadata classes
[AS7-462] Fill out the patch.xml xsd
[AS7-462] add xml parsing
[AS7-462] Add missing attribute to xsd
[AS7-462] cleanup module loader
[AS7-462] persist more information for rollback
[AS7-462] refactor patching attributes

* use PrimitiveListAttributeDefinition's Builder to create a valid model
  type for PATCHES
* use SimpleAttributeDefinitionBuilder to create the VERSION and
  CUMULATIVE attributes instead of extending SimpleAttributeDefinition
[AS7-462] fix patching model

* flag the patching resource attributes as storage=runtime since
  they rely on the PatchInfoService to read their values
* moved attribute and operations registration to PatchResourceDefinition
  extension methods
[AS7-462] Patching system

* add test to compare input XML with parsed+marshalled XML
* fix XML parsing and marshalling
* remove utils duplicated methods for hex string <-> byte[] conversion
* fix reading the hashes from the XML by converting the string to a
  byte[]
* do not write hashes if they are empty
[AS7-462] Integrate patch gen with main metadata
Add a patching config file
[AS7-462] add offline patch tool
[AS7-462] Patching system

* marshall directory attribute for misc-content types
* add test for one-off patches
* make sure that cumulative patch accepts only 1 applies-to-version
* add show-history operation
* store the timestamp at which a patch has been applied
[AS7-462] fix rebase issues
[AS7-462] Move command line usage gen out of process-controller
[AS7-462] Add command line argument parsing to PatchGenerator
[AS7-462] Patching subsystem

* add tests for patch tasks related to modules
[AS7-462] encode module.xml with UTF-8 charset
[AS7-462] Patching system

* make sure the *patch config* and *patch* schemas are in sync. Both
  accepts multiple <applies-to-version> element for <one-off> and
  <cumulative> patch
* raise an exception if a one-off patch has defined a resulting-version
* refactor PatchBuilder to have a more fluent API
* refactor ModuleTaskTestCase to use directly the PatchingTaskRunner
* add test for patching task related to file content
* simplify the FileRemoveTask by copying the backup and hashing the
  target in separate steps
[AS7-462] split assertions and test helper methods