Update documentation for property types
Add metadata property to array based collections

Mostly I need this for a project where I need to have a clean/dirty
flag on a collection but this can be used pretty broadly so I placed it
here.