Add hooks so packages can modify profiles

Add the following hooks:
 - ``addToUserSchema``: fields to add to the (currently unused) user
   Schema
 - ``postAuthor``: templates to use when rendering the post author in the
   byline
 - ``userProfileDisplay``: additional templates to add to the user
   profile display.
 - ``userProfileEdit``: additional templates to add to the user profile
   editing form.
 - ``userProfileFinishSignup``: additional templates to show in the view
   for completing user signup (adding email, username, etc).
 - ``userEditRenderedCallbacks``: Callbacks executed on "rendered" for
   user_edit view.
 - ``userEditClientCallbacks``: Callbacks used to further process user
   properties before saving changes in user_edit view.
 - ``userProfileCompleteChecks``: Functions called to determine whether
   a user profile is "complete" (e.g. has email, username, and whatever
   else).

These hooks facilitate package authors changing which profile fields are
displayed, which profile fields are required, and how to display
usernames next to posts.
Replace "throwError" with "flashMessage" and type

Currently, ``throwError`` is used for all manner of messages, including
errors, "success" messages, and "info" messages.  This makes appropriate
styling of the error message difficult.  In addition, the name
``throwError`` seems to create confusion, implying that an error will
actually be thrown (e.g. stopping execution when a user isn't logged in
[0][1]), when in fact it just displays a message.

Replace ``throwError`` with ``flashMessage``, and reliably include a
message "type" (e.g. "error", "success", "info") every time.  rename
``lib/errors.js`` to ``lib/messages.js`` to more accurately reflect its
function.

This commit doesn't rename the message collection (``Errors``), nor the
template responsible for rendering the messages (``error_item.html``) --
that should probably still be done, but has higher likelihood of
trouble for existing alternate themes and installations.

[0] https://github.com/TelescopeJS/Telescope/blob/6ccf7d7d4704d6a8e821fe48128f81c19983ffc9/client/views/users/user_edit.js#L43
[1] https://github.com/TelescopeJS/Telescope/blob/083a4c4dc48eca15fe9d4472e24e6b4e8adfc8d6/client/views/users/user_email.js#L13
Clean up remaining throwError invocations
Add accumulator for userEditClientCallbacks
added fast-render 2.0 support
Merge branch 'fr2' of github.com:arunoda/Telescope into arunoda-fr2

Conflicts:
	lib/router/posts.js
Switching from manually generating urls to using IronRouter functions.

Using {{pathFor}}, path(), and url() where possible. Passing in path
to Meteor.absoluteUrl() where the IronRouter functions didn't make sense.
Also deleting some random unused code.
do not make call to CDN when language is english (fix #589)
don't need updateCategoryInPosts method anymore (fix #590)
finish epic editor clean up and fix #591
Merge pull request #588 from anthonymayer/urls_by_route_name

Switching from manually generating urls to using IronRouter functions.
Merge branch 'telescope-master-profile-hooks' of github.com:AdmitHub/Telescope into AdmitHub-telescope-master-profile-hooks

Conflicts:
	client/views/posts/modules/post_info.html

Note:
	adapted PR to only keep some of the added features
Merge branch 'AdmitHub-telescope-master-profile-hooks'
do not show admin field group at all if user is not admin
Merge branch 'master' of https://github.com/TelescopeJS/Telescope
Mark some settings field as private and don't publish them
Show settings field privacy in admin settings form
Look for settings in Meteor.settings too (fix #561)
display future posts in pending view
more epic editor clean up