Allow PhutilDeferredLog to fail more quietly
Summary:
We've hit a couple of issues with the exception PhutilDeferredLog throws when used in the Phabricator access log. In particular, it is thrown at an awkward time, when the request is already complete. It is also thrown from an awkward place in the stack, where we've already unwound everything and are calling __destruct(). It also isn't especially important.
Allow it to be degraded into a log message instead. The next diff will apply this degradation in Phabricator.
Test Plan: Unit tests; see next revision.
Reviewers: btrahan
Reviewed By: btrahan
CC: aran
Maniphest Tasks: T3144
Differential Revision: https://secure.phabricator.com/D5874