"Channel" invites

## __Not to be merged... yet.__

Have created pull request so others in the team can be aware of work + progress (e.g. @abmargb, @imaginator, @martin-hewitt). 

Current thinking is to extend the `<subscriptions/>` stanza as it already gives us some of the functionality required. At present only __moderators__ and __owners__ can update subscriptions, but for invites this will be extended to any user with a valid group subscription (but only allow setting to __invited__).

The current functionality is also unit tested and is a lot less scary than rewriting the subscribe code (which is untested).

Work to be completed:

```
<subscription subscription="invited" 
              jid="invited@server.com" 
              node="/user/channel@example.com/posts" 
              invited-by="inviter@example.com" />
```

* SubscriptionEvent: Handle adding of invite. Utilise XEP-0045#example-57 for invite (modified of course)
  * On invite, event notifications are sent to:
    * Channel owner
    * Channel moderators
    * Invitee
* SubscriptionsGet: Needs to handle displaying `subscription="invited"` and inviting JID
* ItemsGet: Update ACL to not allow displaying of posts to invited users
* SubscribeSet: Ignore `possibleExistingSubscription` if `getSubscription().equals(Subscriptions.invited)`
* MAM - don't include invites unless you are the invitee

I also need to ensure that any code in the server accepts non-standard subscription types and reverts any it doesn't understand to __none__.

In order to uninvite themselves a user should send an `<unsubscribe/>` stanza.

### Questions

* Do we send out notifications to all subscribers when someone is invited to a node? I'd say no - because its not a real subscription -- __no__ we will not have a correct `listener` for an invited user, so don't send these out. The `FederatedQueueManager` will handle the look up for sending messages out.

## Progress

* <del>Database updates - need to be reviewed by 3rd party</del>
* <del>Working on MAM</del>
* <del>ItemsGet: Update ACL to not allow displaying of posts to invited users</del>
* <del>SubscribeSet: Ignore `possibleExistingSubscription` for invited</del>
* <del>SubscriptionEvent updates (send out invites to user/moderator/owner - not all subscribers)</del>
  * Currently notifications sent to all, we really need something like https://github.com/buddycloud/buddycloud-server-java/issues/95 in place to solve this issue
* subscriptionsGet code to add "invited-by" where appropriate
* parsing incoming subscriptions results messages including "invited-by" data