Make sure TempFiles are destroyed after a PHP fatal error

Summary: Fixes T4284. Object destructors are not called after a fatal, but shutdown functions are.

Test Plan:
  - Created a test script which makes a temp file, then fatals.
  - Before patch, temp file was left around.
  - After patch, it is cleaned up.
  - Explicitly destroyed the tempfile in the script to verify that double-destruction is fine.
  - Removed fatal to verify that normal behavior works as expected.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T4284

Differential Revision: https://secure.phabricator.com/D10329