Retry subprocess spawning if ENOMEM

Pathologically, on systems with large numbers of database files the
volume/partition-planning step in creating a base backup can occupy
quite a bit of memory, on the order of a few hundred megabytes.  This
is because the entire tree of files is copied into program-local
memory up-front.

This memory footprint is not fantastic and methods can be used to
reduce it, but it is badly exacerbated on systems with overcommit off:
that's because fork() will momentarily double this oversized commit
charge before running exec() to execute small programs like 'psql'.
If there is momentarily not enough memory to execute fork(), prior to
this patch wal-e would crash and all the progress made in taking the
backup will be lost.

Included in this patch are a few extra hooks to control the retry
behavior that are only used in testing.  This seems a little
overwrought, but since OOM is notoriously difficult to test for, a lot
of ceremony is expended in trying to ensure the test suite is testing
properly in modeling it via monkey patching.
Revert version of boto required for v0.6 series

This increment took place to handle the multi-delete procedures seen
in v0.7.  Boto 2.0.0 should work fine.
s3_worker: don't capture all exceptions

Problematic exceptions that can be caught by this except: include
KeyboardInterrupt.  It seems like this wouldn't matter much, but in
general 'except:' without re-raising is probably not good form.

Signed-off-by: Daniel Farina <daniel@heroku.com>