Allow binary to be sent to user data

This is necessary because gzip files can be passed in as user data when
launching instances. Such as in this issue: https://github.com/aws/aws-cli/issues/814

Before if you ran:
```
$ aws ec2 run-instances --image-id ami-b66ed3de --user-data fileb://myscript.gz
```
You would get decoding errors because it is assumed the input to ``--user-data`` is text.

Now with this PR the command will work with both text and binary. I tested it manually as well and both my gzip compressed script and text-based shell script ran when I launched my instances.

cc @jamesls @danielgtaylor