Simplifying message headers

This PR simplifies message headers so that they are no longer a
HeaderFieldValuesInterface object. This change adds a new boolean argument
to `MessageInterface::getHeader()` that allows one to retrive a header as
a string (the default) or as an array of string values.