Create/update memberships included inline in documents

This changes the API to process memberships included in POSTs and PUTs which create or update persons, organizations or posts. If a membership key is included in these then the memberships of the document will be updated to match this. It will create, update and delete memberships as required in order to do this.

If no memberships key is present in the document them memberships will be unchanged.
This `async.each` could possibly be condensed down to

```js
async.each(memberships, function deleteMembership(membership, done) {
  membership.remove(done);
}, callback);
```

or even something like this (though possibly a bit obtuse/terse!)

```js
async.each(memberships, membership.remove.bind(membership), callback);
```