unquote S3 key names before sending to backend
support encoding_type when listing S3 bucket
urls and responses should be bytes, not unicode

Key names and the xml response bodies are unicode encoded but
moto should decode them to bytes before sending them to clients.
Internally we keep unicode strings.
flask sends unquoted URLs, so accept unicode characters
require boto greater than 2.21.0 for encoding_type tests
add content-length to HEAD responses. fixes: #116
key.size now reflects the same behavior as boto, added unit test

Conflicts:
	moto/s3/responses.py
Fixed s3 key size test for different boot versions. requires_boto_get decorator no longer skips all tests in module. Added unittest2 to requirements.txt. Added requires_boto_get decorator to tests that now need it.
don't let flask automatically set the content length
add coding declaration
don't use lstrip, it converts to unicode spuriously
Merge branch 'encodingtype' into longaccess