Make sure handles get registered, and also clean up invalid handles
Unregister handle from finalizer either Dispose
Make sure the debugger doesn't evaluate the SafeHandleBase.IsInvalid property (to prevent side effects)
Safe and clearly documented global cleanup in SafeHandleBase
Update code for execution in a contrained execution region
Add ReliabilityContract attributes.
Revert "Add ReliabilityContract attributes."

This reverts commit 093fca927c574e57384179ccc762415bf878444b.
Revert "Unregister handle from finalizer either Dispose"

This reverts commit 3715ec2d2ccbbacc96482ef2a81eeb3d8e2f6876.
Merge branch 'pr/n2_sharwell' into vNext