no longer using xapian
remove cruft
Add function retry_wrapper to handle reexecuting failed greenlets.

Summary:
Previously we were wrapping all functions spawned as greenlets with
log_uncaught_errors(); now we instead wrap with retry_wrapper(), which handles
both logging uncaught exceptions and retrying on failure.

retry_wrapper keeps a failure count. By default, it will stop retrying if there
are too many failures in quick succession, but will reset the failure count to
zero if there are no failures over a longer interval (default five minutes).
This behavior is designed to be configurable.

Test Plan: Unit tests added.

Reviewers: mg, kav-ya

Reviewed By: mg

Differential Revision: https://review.inboxapp.com/D178
Add decorator to pause and debug sporadic exceptions.

The thought is that this may be useful for debugging exceptions that occur
sporadically on staging: manually instrument the offending function with
`@pause_on_exception`, then when it happens again you can jump into pdb and see
what's happening.
Redis setup
Rebased, conflicts resolved
Bootstrap redis.
Edits to bootstrap code.
Update Redis on start-up.
Code refactoring.
Use new config code
Fix state reporting in report_progress()
Calc num_local_updated, num_local_deleted
Redis schema for per-folder status