Removed ObjectDisposedException from DangerousGetHandle
In CTOR set handle to invalidHandleValue.
Calling DangerousRelease should never set the handle in an invalid state, even after it is closed.
Changed how SafeHandle implement IDisposable
Fixed SafeHandle.SetHandleAsInvalid to have the same behaviour as Ms.Net
Removed unused variable.
Updated tests to reflect the changes made to SafeHandle