Don't pass headers to Rack with nil or non-string values.

Closes #35
Document the fact that ParseYaml middleware is unsafe

We can't just switch to `YAML.safe_load()` ourselves since that would
break backwards compatibility. For instance, `safe_load` returns nil for
empty yaml documents where `load` returns `false`. Also, `safe_load`
will refuse to parse Symbol keys since DoS attacks targeting symbols are
a real thread. Finally, not every Ruby version has a Psych that supports
`safe_laod`.

https://github.com/tenderlove/psych/issues/119#issuecomment-20536311

Fixes #92