Fix header parsing for scalar values

All the scalar handlers can now work with either XML nodes
or with the header strings directly.  This fixes a bug where
non-string scalar values were present in the headers (integers,
booleans, doubles, etc.) but were being called with handlers
only expecting XML nodes.

Fixes aws/aws-cli#940.

cc @kyleknap @danielgtaylor