refactor(client): Asynchronous rendering!

* Asynchronous can be used to check for prerequisites/errors before printing the template, preventing flashes of content before being fully ready.
* Only show the contents of the new screen once all async operations are complete.
* Add fxa-client.js->isSignedIn to check if a user is signed in with the given token.
* Move fxaClient creation from form.js into base.js so that authentication can be checked.
* Clean up base.js->render and the isSignedIn check.
* Update all the vew tests to expect async rendering.

issue #788
chore(client): Cleanup based on comments.

* Remove invalid comment
* Reorder functions to make review easier
fix(server): Ensure fonts have cacheable URLs.

* Serve fonts statically until connect-fonts has its business in order.

fixes #384
chore(client): Change `too many retries` to `Unexpected error`.

* Used if browser does not respond to a message sent to it.

fixes #725
Merge pull request #896 from mozilla/issue-725-too-many-retries

chore(client): Change `too many retries` to `Unexpected error`.
feat(client): updating js client to 0.1.18
Merge pull request #899 from vladikoff/js0.1.18

feat(client): updating js client to 0.1.18
Merge pull request #890 from mozilla/issue-788-async-render

refactor(client): Asynchronous rendering!
Merge pull request #895 from mozilla/issue-384-cache-fonts

fix(server): Ensure fonts have cacheable URLs.
fix(client): Enable back button functionality when visiting `/`.

* use history.replaceState instead of history.pushState when redirecting from `/`.

fixes #763
Merge pull request #897 from mozilla/issue-763-redirect-on-startup

fix(client): Enable back button functionality when visiting `/`.

@nchapman gave the r+, I rebased. Merging.
feature(client): Add backoff protocol error strings.

* Use the 201 errno as the indicator for `server busy`
* Change `Service unavailable` to code 998, this is a client side only number.

fixes #484