Replacing HeaderValuesInterface with an array and adding docs.

- Instead of using a HeaderValues object for header values, I've added an
optional argument to getHeader() that specifies whether or not to return
a header as a string or an array.
- Adding the start of the new documentation.