Merge branch 'release-2.2' into develop

* release-2.2:
  Update copyright dates
  Bump version for 2.2.2-pl release
Documentation updates
Add xPDO::getInstance() for singleton support

- Get instances by a unique identifier
- Force recreate instances by unique identifier
- Update config of existing instances
Implement xPDOQuery::having() method
xPDOScriptVehicle added for manifest-based scripts

Now a vehicle can represent a script executed in it's sequence within the manifest
Merge branch 'develop' into release-2.2

* develop:
  xPDOScriptVehicle added for manifest-based scripts
  Implement xPDOQuery::having() method
  Add xPDO::getInstance() for singleton support
  Documentation updates
Bump version for 2.2.2-pl release
xPDO 2.2.3-pl

Merge branch 'release-2.2'

* release-2.2:
  Bump version for 2.2.2-pl release
  xPDOScriptVehicle added for manifest-based scripts
  Implement xPDOQuery::having() method
  Add xPDO::getInstance() for singleton support
  Documentation updates
Merge branch 'release-2.2' into develop

* release-2.2:
  Bump version for 2.2.2-pl release
Add criteria support to aggregates and composites

This allows defining additional criteria beyond the local and foreign column values which must be satisfied to load or save an aggregate or composite with a criteria attribute defined.

NOTE: you can define selection conditions as any valid JSON string, but for satisfying save values, only array values with non-numeric keys will be considered.
Fix related_object installation in xPDOObjectVehicle

- properly resolves foreign key changes
- passes related_object_attributes appropriately
urldecode missing for composites in xPDOGenerator
Refactor schema parsing using SimpleXML
Fix xPDOObject::_loadInstance for graph objects

In cases where the same class was being loaded with an alias as a related child object from a graph query, the child object was being hydrated from the parent object improperly.
Refactor aggregate/composite criteria support

Allow targeting the local or foreign class with additional criteria for the relationship, regardless of ownership
Merge branch 'develop' into release-2.2

* develop:
  Refactor aggregate/composite criteria support
  Fix xPDOObject::_loadInstance for graph objects
  Refactor schema parsing using SimpleXML
  urldecode missing for composites in xPDOGenerator
  Fix related_object installation in xPDOObjectVehicle
  Add criteria support to aggregates and composites
Bump version for 2.2.4-pl release
xPDO 2.2.4-pl

Merge branch 'release-2.2'

* release-2.2:
  Bump version for 2.2.4-pl release
  Refactor aggregate/composite criteria support
  Fix xPDOObject::_loadInstance for graph objects
  Refactor schema parsing using SimpleXML
  urldecode missing for composites in xPDOGenerator
  Fix related_object installation in xPDOObjectVehicle
  Add criteria support to aggregates and composites
Merge branch 'release-2.2' into develop

* release-2.2:
  Bump version for 2.2.4-pl release
Bump version for 2.2.5-dev