[Serializer] Add deserializing to an array of objects

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | m/a
| License       | MIT
| Doc PR        | tbc

Adds a `deserializeCollection` method to the Serializer so that collections of models can be deserialized without  having to split out the decoding and denormalization stages yourself, or having to create a custom denormalizer for the collection.