Class and property metadata

Adds helpers for getting and setting custom fields on classes and properties.

### Classes

```js
db.class.get('OUser')
.then(function (OUser) {
  console.log(OUser.custom.fields);
  return OUser.custom.set({
    key: 'value',
    foo: 'bar'
  })
  .return(OUser);
})
.then(function (OUser) {
  console.log(OUser.custom.fields); // {key: 'value', foo: 'bar'}
});
```

### Properties

```js
db.class.get('OUser')
.then(function (OUser) {
  return OUser.property.get('name');
})
.then(function (prop) {
  return prop.custom.set({
    key: 'value',
    foo: 'bar'
  })
  .return(prop);
})
.then(function (prop) {
  console.log(prop.custom.fields); // {key: 'value', foo: 'bar'}
});
```