Changed the Table Destructor to a Finalizer.

This was the cause of a memory leak in the .NET code. As far as I understand c++ ~destructors are never called automatically by GC. !Finalizer however is called automatically by the GC. This code relies on the GC, hence the deleting of unmanaged resources should have been in the !finalizer not in a ~destructor. (I just learnt all of this, I've never used C++, or worked unmanaged code in C#).

To reproduce the bug run the original demo code and watch the memory go up in task manager. With this change its stable again.

As far as I see that code is only used by the C# wrapper, so there should be no side effects?