Introducing client-id and channel it through streaming.

- Using uuid.js to generate valid version 4 uuids
- The client and the streaming pages generate their own client ids.
- Streaming api now accepts a dict { clientID: <id>, filter: filter_dict } instead of { <filter_dict> }
- Streaming api now has a different output structure: { type: <msg_type> , payload: <data>, options: <msg_options>} instead of [data, action]

Fixes #661
Fixes #619
Bugfix: Notifications for logged-out users too.
Introducing fuzzytime directive to get rid of tons of needless recalculation.

Instead of calling the fuzzyTime filter for the $viewValue.updated in the annotation.html we're now calling this filter in the directive ctrl.$render.
This way it only recalculates the fuzzyTime filter once / annotation / clicking to the bucket.
Remove one superfluous $digest call from .on 'click' bucket.

It calls annotator.showViewer() which calls updateViewer() which already has a $rootScope.$digest() call.
Superfluous  argument in fuzzytime directive
Added mediumDate to fuzzytime directive
Using broofa/node-uuid uuid library

For better random generation
Move authorization info to the annotation directive.

This way the auth('delete') and auth('update) is calculated only once per annotation
Added timer for fuzzytime directive
Increased timeout for version check cross-frame RPC from 5s to 10s.
Merge pull request #717 from RawKStar77/killopacityonpenadder

Killed opacity on pen adder.
New version of Markdown.converter.js

Fixes #260
Tab count reflects the number of both top-annotations and replies.

Instead of the normal ```Total annotations``` format and the previous ```Top level annotations``` format, now introducing the ```"Total annotations"+"Replies"``` format, if this string is shorter than 5 characters, if longer we're falling to the old ```Total annotations``` format.
Font size changed from 13.1px to 12.1px

Fixes #671
Don't display reply number of the number of replies is 0
Get rid of replies(annotation) call from the Viewer.

The replies(annotation) call of the viewer.html ng-repeat was called in every $digest cycle yet it only needs to be updated upon annotation creation, reply creation, delete.
Therefore an updateReplies event is introduced which is emitted up in the hieararchy and every annotation updates it's new reply_list property (which as it's namesake suggest keep a list of the annotation's replies)
Bugfix for reply_list calculation, calculate it for non-level-annotations too
Tag label: restore font and move it to the middle
Include annotator source files and sourcemaps.

This enables Coffee debugging of Annotator.
Also takes care of some of the 404 messages on the console,
generated by the JS files referencing the missing source maps.

Fixes #721.
Merge pull request #718 from hypothesis/671-top-and-reply-for-tab-counts

Tab count now includes the number of both the source-level annotations and the replies
Using () inside the time-directive instead of