Return 'undefined' if HTTP header value is "" (treated the same as missing)
Return 'undefined' if HTTP header value is "" (treated the same as missing)

Empty headers are treated as missing. However, some upstream servers
(such as Openresty, with certain module) might strip empty headers while
others (such as Nginx) do not. The specific cause is speculative and has
not been confirmed.

Rather than depending on upstream servers to strip empty headers, this patch
makes any the empty headers return the same value as missing headers (undefined).
This allows OSC to past the latest Pedant tests.

This patch resulted from test that were passing by Enterprise Chef and
failing on Open Source Chef. The specific tests were:

    empty X-Ops-Timestamp
      returns 400
    empty X-Ops-Content-Hash
      returns 400

When testing on OSC, when a request is missing X-Ops-Timestamp and
X-Ops-Content-Hash, OSC erchef will respond with 400 as expected.
However, when a request has "" set for X-Ops-Timestamp or
X-Ops-Content-Hash, then OSC erchef will respond with a 401. EC does not
behave this way. Testing shows that EC does not ever receive a "" value
for the header, even when Pedant creates a requests with those headers
set as "".

chef/chef_wm