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
xPDO Core 2.2.3-pl

Merge remote-tracking branch 'xpdo/master'

* xpdo/master:
  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
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
xPDO Core v2.2.4-pl

Merge remote-tracking branch 'xpdo/master'

* xpdo/master:
  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
[#8060] Implement __isset() to fix empty()/isset() on hydrated vars

Changes to HYDRATE_FIELDS/HYDRATE_RELATED_OBJECTS broke the expected behavior of empty() and isset() on the variables when accessed directly. This resolves the BC break.
Merge branch 'develop' into release-2.2

* develop:
  [#8060] Implement __isset() to fix empty()/isset() on hydrated vars
  [#7797] Avoid E_NOTICE from array_diff_assoc change in 5.4
  Prefix indexes with table name for sqlite
  Fix xPDOTest::testGetFields for sqlite/sqlsrv
  - Fix lazy loading of fields on demand
  [#7607] xPDOObject->get(array) triggering invalid lazy loading
  xPDOObject/xPDOSimpleObject support for xPDO::getDescendants()
  Refactor HYDRATE_FIELDS/HYDRATE_RELATED_OBJECTS using __get()/__set()
  Bump version for 2.2.5-dev
Bump version for 2.2.5-pl release
xPDO 2.2.5-pl

Merge branch 'release-2.2'

* release-2.2:
  Bump version for 2.2.5-pl release
  [#8060] Implement __isset() to fix empty()/isset() on hydrated vars
  [#7797] Avoid E_NOTICE from array_diff_assoc change in 5.4
  Prefix indexes with table name for sqlite
  Fix xPDOTest::testGetFields for sqlite/sqlsrv
  - Fix lazy loading of fields on demand
  [#7607] xPDOObject->get(array) triggering invalid lazy loading
  xPDOObject/xPDOSimpleObject support for xPDO::getDescendants()
  Refactor HYDRATE_FIELDS/HYDRATE_RELATED_OBJECTS using __get()/__set()
  Bump version for 2.2.5-dev
Merge remote-tracking branch 'xpdo/master'

* xpdo/master:
  Bump version for 2.2.5-pl release
  [#8060] Implement __isset() to fix empty()/isset() on hydrated vars
  [#7797] Avoid E_NOTICE from array_diff_assoc change in 5.4
  Prefix indexes with table name for sqlite
  Fix xPDOTest::testGetFields for sqlite/sqlsrv
  - Fix lazy loading of fields on demand
  [#7607] xPDOObject->get(array) triggering invalid lazy loading
  xPDOObject/xPDOSimpleObject support for xPDO::getDescendants()
  Refactor HYDRATE_FIELDS/HYDRATE_RELATED_OBJECTS using __get()/__set()
  Bump version for 2.2.5-dev
[#8052] Fix empty()/isset() on hydrated fields/related objects

Merge remote-tracking branch 'xpdo/master' into bug-8052

* xpdo/master:
  Bump version for 2.2.5-pl release
  [#8060] Implement __isset() to fix empty()/isset() on hydrated vars
[#8052] Fix empty()/isset() on hydrated fields/related objects

* bug-8052:
  Bump version for 2.2.5-pl release
  [#8060] Implement __isset() to fix empty()/isset() on hydrated vars