Minor code cleanup

* Implemented IDisposable for MonitoringProvider
* CA1813: Avoid unsealed attributes
* CA2237: Mark ISerializable types with SerializableAttribute
* CA1816: Call GC.SuppressFinalize correctly