Added array and error decoration

Array decoration allows metadata properties set on an array during transformation to be copied over to the resulting data. This allows us to do things like add pagination metadata to the result array.

Error decoration allows metadata properties set during transformation to be copied over to the resulting data, on error, without removing existing, non-conflicting properties. This allows us to do things like creating am 'error' property on an existing model, without losing the model's existing property values.
I don't think this needs to be split up so much --- should probably declare the regexp higher up as a variable though