Uses decoder instead of JSON gem

Okay, so apparently aws-sdk has a dependancy of the `json` gem, so
technically we could use it here.  But since the docs are expecting the
use of the MultiJson gem when encoding and decoding, it makes sense that
we use it in those places.

We are rescuing ::JSON::ParserError in the #raw_body_with_sns_check
method, but this is because the AWS object can possibly return that when
using the json gem that it requires.  For that reason, it is going to
remain in the code.
Updates sqs #push to pass along credentials
Removes ::s3 infavor of #s3

While a class method will allow for the best amount of memoization,
queuel might be responsible for multiple queues and s3 fallbacks, and
having it as a class variable will not allow for it to differ between
queues.

This also reduces complexity a bit.
Use separate creds for s3 fallback

Sharing the access_key_id and secret_access_key accross both the s3
fallback and queuel queue seems like it will cause conflicts for some
users.  Having a minor amount of duplication of keys seems like a better
option then forcing users of the gem to use the same credentials for s3
as SQS.