basic patching infrastructure
introduce boot module
add patching model resource
add bundles directory
Patch generation analysis of version diff

Create the actual patch file following difference analysis
Cleanup metadata classes
Fill out the patch.xml xsd
add xml parsing
Add missing attribute to xsd
cleanup module loader
persist more information for rollback
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
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
Integrate patch gen with main metadata
Add a patching config file
add offline patch tool
[AS7-462] Patching system

* marshall directory attribute for misc-content types
[AS7-462] Patching system

* add test for one-off patches
[AS7-462] patching system

* make sure that cumulative patch accepts only 1 applies-to-version
[AS7-462] Patching system

* add show-history operation
* store the timestamp at which a patch has been applied