Handle sigv4 non-string header values properly

Fixes https://github.com/boto/boto/issues/2731

We were making the assumption that header values were strings. So some headers like content-length had integer values that caused the canonical request generation to fail

cc @danielgtaylor @jamesls