Handle Cloudsearch Indexing Errors

Previously the code handled errors on individual items but not an error response that included no 'adds' or 'deletes' keys resulting in a KeyError
Added test for cloudsearch indexing errors
remove obsolete md5 import routine

The old md5 module was deprecated since Python 2.5, and we even didn't
support that version already. The current implementation in
boto/utils.py will not even work under Python 2.4 because of the name
"md5" imported from md5 module was replaced by the md5 module in the
following routine, which will cause errors.
use encodebytes instead of encodestring (#2483)
fix TypeError when getting instance metadata under python 3 (#2485)
Merge pull request #2484 from piotrbulinski/develop

Use encodebytes instead of encodestring. Fixes #2483, #2484.
Merge pull request #2468 from felixonmars/hashlib-imports

Remove obsolete md5 import routine. Fixes #2468.
add unittest testing bytes and string response in boto.utils.retry_url method (#2485)
Merge pull request #2370 from danielrhammond/fix-cloudsearch-commit-response-keyerror

Handle Cloudsearch indexing errors. Fixes #2370.
Merge pull request #2486 from piotrbulinski/LazyLoadMetadata_py3

Fix TypeError when getting instance metadata under Python 3. Fixes #2485.
Merge pull request #9 from boto/develop

Pull in Upstream Changes