Convert provided array data to ArrayObject instead of StdClass.

As discussed on (#91)[1], passing data provided as an array through to
listeners as an array is desirable, but can cause unexpected behaviour
in event handling as arrays are effectively passed by value.

As a compromise, passing an ArrayObject allows most of the advantages of
passing an array while allowing the data to be modified by event
handlers.

Additionally, in this implementation

* ArrayObjects have been created with ARRAY_AS_PROPS for backwards
  compatibility with code that expected arrays to be cast to objects.
* Resource actions which previously returned the original data if no
  response was provided by listeners now return the original data
  *before* being cast; this is potentially not backwards compatible, as
  code which passed in an array may be expecting to get back an object
  but will not.

[1]: https://github.com/weierophinney/PhlyRestfully/pull/91
Supports bulk update and/or create of resources through patchList.

Implements support for the AbstractRrestfulController::patchList method,
which should be used for updating and/or creating a collection of
resources.

Implementation is very similar to replaceList, as the replace vs patch
logic is largely implemented in the listeners.

Tests are implemented based on the replaceList tests, with some small
extensions to both to more fully test the validity of arguments.
Merge branch 'support-patchList'