Implement setHeader.

Unlike addHeader, this will overwrite any existing header, rather than
appending to it.  This allows the use of customHeaders in MKNetworkEngine
as the default values, but overridden on a per-operation basis if necessary.
Merge branch 'addHeader'