Replace aws2js with awssum

awssum is a more robust and better supported library. This will allow us
to get request headers when requests fail which is important for debugging
issues with Amazon support.
Remove dynamo dependence for awssum

Remove our dependency on the node dynamo module and use the awssum module
instead as it's better supported.
Add retry behavior to all dynamo requests.

We will try every operation 5 times, with an exponentially growing
time between them. It will start at 500 milliseconds and grow by a
factor of 1.5.
Add retry behavior to all S3 requests.

We will try every operation 5 times, with an exponentially growing
time between them. It will start at 500 milliseconds and grow by a
factor of 1.5.
Allow configuration of s3, dynamo regions.

Previously the same region was used for both S3 and Dynamo, these are
now independent.
Remove extra plus signs
Make the error handling more defensive.
Write operations that are too large to S3

This is the best tradeoff for performance and speed. Otherwise we'll
lose an operation's data if we don't save it to S3.
Read operations that are too large from S3

If an operation is marked as an external operation, read it's data from
S3.
Delete operations from s3 buckets

For any operation that is externally stored, remove its operation from
the bucket.
Merge pull request #158 from mcolyer/amazon-large-ops

Amazon Backend Improvements