Fix memory leaks in Oracle Client. The largest leaks come from the curso...

...rs being created but never freed in OracleParameter.cs. The size of the memory used by these cursors varies from tens to thousands of bytes depending on the statement being executed. Several hours of transactions can lead to OOM errors. The other fixes are relatively minor but they do clean up other unmanaged memory not being returned. Also, CharSetToUnicode and UnicodeToCharset need length values handled during the call due to size mismatch.