Always return a channel from getChannel

The method `getChannel()` should always return a Channel object. The
previous change to return `null` once a sub-channel was not present
resulted in the following use case to break:

Publish to a channel that hasn't been created but does have an existing
parent channel.

This used to work as `getChannel` would always create whatever channel was
passed along to it. By introducing the read-only mode this behaviour was
broken. It went undetected as there was no unit test covering this
scenario. A unit test for this scenario has been added for future
reference.

Now that `getChannel` once again always returns a channel object we can
test if the namespace of the returned channel matches the requested
namespace. If it doesn't match we know the requested channel is not
available and are returned the most specific channel that was created.

Example:
```
mediator.subscribe('root', callback);
mediator.publish('root:sub');
```
This should result in the callback method for the `root` channel to be
called.