(#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
(#58) - proper behavior for _sum

The built-in _sum function should return
an error if the values are not numbers or
number arrays.  Also, it should support number
arrays.