Merge branch 'release-2.2' into develop

* release-2.2:
  Update copyright dates
  Bump version for 2.2.2-pl release
Merge remote-tracking branch 'xpdo/develop' into develop

* xpdo/develop:
  Update copyright dates
  Bump version for 2.2.2-pl release
  Fix handling of driverOptions in xPDOConnection instances
Added doesAlreadyExists method to modObjectUpdateProcessor
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
Merge remote-tracking branch 'xpdo/develop' into develop

* xpdo/develop:
  Add xPDO::getInstance() for singleton support
  Documentation updates
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 remote-tracking branch 'xpdo/develop' into develop

* xpdo/develop:
  xPDOScriptVehicle added for manifest-based scripts
  Implement xPDOQuery::having() method
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
Merge remote-tracking branch 'xpdo/develop' into develop

* xpdo/develop:
  Bump version for 2.2.2-pl release
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
Initial commit for full-blown REST service classes, including both client and server
Automatic object support for methods
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.
Squashed commit of the following:

commit f3b6d965ea56c5d8b6166f8ca833a32905106aca
Author: Jason Coward <jason@modx.com>
Date:   Wed Mar 21 15:21:47 2012 -0600

    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.
Prevent E_NOTICE error when using a feed that doesn't have an etag or last_modified date set.