Make HTTP status phrases optional with a fallback for known codes

Summary: RFC 7231 defines status line as follows:
"The first line of a response message is the status-line, consisting
of the protocol version, a space, the status code, another
space, a possibly empty textual phrase describing the status code,
and ending with CRLF."

- This basically means response phrase is optional and may be omitted.
In that case, fall back for default response phrase for known codes or
empty string for others.

- Fix usage of explicit HTTP/* header to set response phrase properly,
if set.

- Also synchronize default phrases to match codes defined in RFC.

Closes #3907. Closes #3945. Partially reverts 93a6dc27c9.
Closes https://github.com/facebook/hhvm/pull/3976

Reviewed By: @paulbiss

Differential Revision: D1618243