get_user_property: allow passing in the userId

Sometimes, Meteor.userId() is not available, such as in publish
functions. For this reason, we need to be able to supply the userId.

This may also be useful if we want to find a user property for someone
other than the current user.
admin: only publish admin collections to the admin users

Previously anyone could subscribe to these collections, exposing data to
non-admins. This was hidden in the UI, however the collections should
not be available in the first place.

Create a wrapper to make publishing admin collections standardised.

Move publish functions to the same location.
Merge pull request #71 from Cogito/admin-security-fixes

Admin security fixes