Feature to have world-accessible snippets

I've added a new feature to snippets to allow them to be world-accessible (like the new "public projects" feature). Before, a snippet could have its `private` attribute as `true`/`false` - a private snippet could only be viewed by the user who created it, whereas a `public` snippet could be viewed by any GitLab user. I've changed the `private` attribute to `visibility` - allowing 3 visibility types: `private`, `gitlab_public` and `world_public`. The first two are the same as described before, but `world_public` lets the snippet be visible on the public page allowing anyone people to view the snippet without being signed in.