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