Add support for public document channel

Resolves conflict between user `*` channel (meaning access to all documents) and the document `*` channel (meaning available to all users).  Previously only the user `*` channel was enabled - documents added to the `*` channel would only be available to users who also had the `*` channel.

Changed the naming of the document * channel from `*` to `!` for simplicity and clarity.  Access to the `!` channel is being granted to all users by default in auth.rebuildChannels.

Switched to using named constants instead of `*` and `!` where possible, to more easily distinguish between intended usage.
I think that should be `channel.AllChannelWildcard`, right?