Changed sync fn's userCtx API

You can't access the user name / roles / channels directly anymore, to
avoid screwing up during a rebuild when they will all be null.
Instead you call methods like isUser(), requireUser(), hasRole(),
requireRole(), hasAccess(), requireAccess().
make the userCtx API take a single name, role, or channel; or a list of names, roles, or channels. But drop support for multiple arguments
remove shouldValidate api
Merge branch 'requireUser' of github.com:couchbaselabs/sync_gateway