(#74) - use promises instead of callbacks + cleanup

This commit cleans up implementation of persistent views introduced in
(#68). This commit significantly decreases complexity of error handling
as well as the general look of the code.

* TaskQueue uses just promises
* removed createKeysLookup which was a strange optimization in very rare
  edge case most likely resulting in code being slower
* defaultsTo - nice way to recover with some value if document was not found
* Promise.all - don't count promises manually
* sequentialize - nice way to make some function calls in sequence (for
  java funs: synchronized)
* minor cleanups
(#101) - increase test timeouts

These tests are slow in Safari, and I'm tired of
re-running them.