make sure everything is copied to the hasher

I'm not sure why these writes would fail or fall short but before we start to look at the `n` return value of the `Write()` calls I modified these to use `io.Copy()` and the errors should be checked regardless.


ps: I found another unchecked error (by using [errcheck](https://github.com/kisielk/errcheck)) [here](https://github.com/dgrijalva/jwt-go/blob/1663b3c6c2dc6f50d23fdbbfece59ebd7fc4157a/jwt.go#L216) but that's okay, I guess.