Add member property to membership schema

I'm adding this property to the popolo+mysociety/membership.json schema
initially, as this isn't officially part of popolo yet.

This property will be used as a polymorphic reference to the person OR
organization that is related to the organization of the membership.

This is to help support the concept of coalitions in PopIt, the idea being
that there is an organization which represents the coalition, then the various
political parties that are part of the coalition have a membership
record where the party is the "member" of the membership, and the
coalition itself is referenced through the "organization" property.
Find memberships using the "member" property

This retains backwards compatibility with the previous implementation
that used `person_id` to identify the person that was associated with
the membership. Now you can associate any type of object with a
membership, though it's most likely to be a person or an organization.
Update fixtures to use new member notation

To support coalitions the "person_id" string on memberships has become a
polymorphic "member" object with an "@type" and "id" property. This
allows either a person or an organization to hold a membership.
Move the membership finder plugin into a module

For consistency with the rest of the codebase, mongoose plugins should
live in "src/mongoose/".
Add tests for person/org memberships

Make sure that memberships are populated correctly when they are
returned from the API.
Document the membershipFinder mongoose plugin
Refactor membershipFinder mongoose plugin

Use explicit variables for the Membership model and the current schema's
modelName to make the actual query we perform a bit clearer.
Merge branch 'coalitions'