Only use request.root if it exists

Fixes chrome extension build
Add extension build to Travis
Remove last traces of chameleon

The Chrome extension build still required chameleon, a dependency
removed by 81ce4b1.

This commit removes the last traces of chameleon (from the extension
builder and the views file) and thus fixes the Chrome build for new
checkouts.
Ensure extension build has `request.root`
Merge pull request #1671 from hypothesis/1300-fix-chrome-deployment

Fix chrome extension build
Regular update of annotation timestamps

The annotation directive uses the timeHelpers service to get
the fuzzyTimeString and the next time to update.

It wraps the updating with the render service to avoid
the UI update to be flickery and only update when necessary

Fix #1615
Introduce timeHelpers service

Instead of the fuzzyTime filter (and without abusing it)
introducing this service which generates the fuzzyTimeString
(as message) and the next time the fuzzyTimeString should be
updated in seconds (as updateAt) from a given datetime object..
 Kill fuzzyTime filter
Add tests for time-helpers
Break timeHelpers into smaller functions

Code from @nickstenning, introduce the breakpoints array and search
in it for the needed fuzzystring and when to update next instead of
a complex else-if tree.

timeHelpers service has two functions:
- toFuzzyString: returns the fuzzy time string
- nextFuzzyUpdate: returns the next time to update (in sec)