Add SuppressFinalize calls to Dispose()

Best practices suggest to add a SuppressFinalize call to the Dispose()
method. This tells the garbage collector that it doesn't have to call
the expensive finalizer on this object.