Asset metadata

WIP currently. Added metadata fields to attachments via a new AttachableWithMetadata module, which wraps Attachable and extends it with metadata fields.

For theodi/shared#64