Expose IndexedDb api (bug 786688)

Compared to previous commit (862ba11a):

* remove db prefixing
* per-addon security principal
* all strings changed to double quotes
* freeze `exports.indexedDB`
  - (heritage.extend, rather than `object.Create`)
  - includes test
* use `addon://` fake scheme in principal
* makeFunc replaced with `bind`
* sanitized "indexeddb" uri for principal

Risks:

* will make data created using previous sdk INACESSIBLE
  (unless they take effort to find the data and export it,
  which is non-trivial)
* relying on `sanitize(packageID)` might make data INACCESSIBLE in the
  future if we change how `packageID` is derived.

Doc updates:

* indexedDB docs reflect openForPrinciple
* external example usage
* changed 'aside' to reflect current bug status on protocols, principle
* removed outdated notes on Database Naming

All tests pass.