Use a bytes.Reader where a strings.Reader will do.

There are a couple of places where a []byte is converted to a string
and then fed into strings.NewReader().
Don't convert []byte to string unnecessarily.
Don't use a Printf where a Print will do.
A few spelling/grammar corrections.
Don't use an interface{} where a string will do.
Merge pull request #270