Remove collections.js in favour of using models directly

This removes the confusing separation between collections.js and
models.js. All the functionality is now provided by models.js which is
also more explicit in defining models.
Make toElasticsearch function async

This allows us to do extra queries before the document gets indexed into
elasticsearch. We can use this to get the person and organization
information for a membership before it is indexed.
Index organization/person/post related to membership

Override the toElasticsearch method so that we can index a memberships
related models, which in turn allows the user to query against the
related objects through the search API.
Index coalition-style membership relations

This allows you to query against the 'member' property where an
organization is a member of another organization in elasticsearch.