(#1727) - Short-circuit hasLocalStorage if Chrome

Any calls made to `localStorage` in Chrome Apps will return:

> window.localStorage is not available in packaged apps. Use
> chrome.storage.local instead.

Therefore, guard against it if we're in a Chrome App.

Closes #1727.
(#1068) - cache websql dbs

Safari 7 starts throwing DOM Exception 11 if
we open up too many db handles, which crashes
our unit tests. Caching them fixes that.

We actually already tried this once before in
6575e8d490fbc745242edf72090598a72df6f120, but
we forgot to put the cachedDatabases outside
the constructor method.
(#1732) Batch replicate one generation docs

Update of @jo fix for #993. Use allDocs to speed up replicate of one gen. docs.
(#1735) - Bring back the browser migration tests

It looks like we accidentally regressed in
13839c64c0f0915a4b9490d8d638bc59ccb35ef4
and browser.migration.js stopped working.
(TypeError: PouchDB is not defined.)
(#1725) - proper prefixes for view dbs
(#1733) - fix unicode doc ids in websql

Since we're using the \u0000 character
in the docid in mapreduce, websql
should be able to use unicode for lookups
and conflict checking. The test fails
before the commit but succeeds after.
(#1746) - don't use map when we mean forEach
(#1533) - fix maxlen=80
(#1743) - escape sql in websql's doCompaction

This should be the final SQL injection fix. I don't
see quote() being used anywhere else, except for
static db names.
(#1716, #1722) Sidebar is fixed, has API links on api.html and nav links otherwise.

Layout for 2 column pages is 2ColLeft.html.
Sidebars are in _includes/, API is api.html and nav is nav.html.
Sidebar is fixed if window has width >= 770px and height >= 475px.
(#1704) decreased width of blog
(#1748) - document ES5/ES6 compatibility
(#1738) - use more batches in leveldb
(#44) - Make backend usage a bit more flexible
(#1755) - move analytics to end of head