Make finalizers more reliable.

Authored by Phyx on May 15 2018, 8:20 PM.

Description

Make finalizers more reliable.

Ignore any errors thrown by finalizers when running them.

This prevents a faulty finalizer from stopping the rest being called.

Test Plan: ./validate, new test T13167

Reviewers: hvr, bgamari, simonmar

Reviewed By: bgamari, simonmar

Subscribers: rwbarton, thomie, carter

GHC Trac Issues: Trac #13167

Differential Revision: https://phabricator.haskell.org/D4693