Implement randomness between retries for throttling errors

This is only for the default policy, and it  matches the AWS SDK
behavior.
Bug fix: retry delay was going from 0 to 2*scale factor

This behavior came from the AWS Java SDK, which I believe has the same
issue: https://github.com/aws/aws-sdk-java/issues/323
Move all retry logic into queryServer

queryServer will respect the RetryPolicy for the Server, defaulting
to the aws.DynamoDBRetryPolicy (which matches the Java AWS SDK).