Support 'local' access model

## Description

An additional access model that allows users from the same domain view and subscribe to channels without any protection. Users from remote domains are required to subscribe in order to view the channel, their subscription requires authorisation.

## Use case

Daddy Tennant wants the family to be able to see his detailed running schedule which he updates regularly. The family aren't really interested (i.e. no push updates, no subscription) but would like access to the data at their convenience.  Daddy Tennant doesn't want this data shared publicly, so he uses a 'local' access model.

## Features

* When remote users retrieve node configuration then system returns 'authorize' as the access model (for both configuration get and disco#info)
* Local users can view the channel
* Remote users need to be subscribed to see the posts
* Local users can subscribe as if it were an 'open' channel
* Remote users receive a subscription status of 'pending'

## Notes

I've also added some basic subscription request tests, but the code was from before I started on the java server so is pretty messy. Raising an issue to get it rewritten.