Optimize out key.exists() call

Also try to retain the advantage that the error message returned when
a 404 is encountered still avoids the annoying gevent-instigated stack
trace.  This is done by converting exceptions into return values
rather than raising them to the top of the greenlet.
Untabify
Test compatability with newer boto

New Boto versions require a 'port' argument be supplied to
get_http_connection.