Handle nil http request body

I'm implementing a Glacier client in go and a lot of the requests have nil bodies. 

This patch fixes a panic in the current aws4 library when the HTTP request has a nil body.  I also added an example test using a nil body to make sure it works correctly.

Thanks.
Please run this through gofmt.