WL-1026 : A msg is public if it is public or its site is

Announcements made on a .anon site should be public by default.

The code uses reverse logic : a msg is not public iff it is not in a public site and it is not public itself.

This commit is twinned with that in the WL-1026 branch in wl-announcements.
Each message channel knows which site it is part of already, there isn't any need to pass in a site object and could create strange calls where you've got a message channel in one site but you're doing the public check against another site.

```getContext()``` should allow you to get at the Site of the MessageChannel