Fixes callback on disposed collation delegate issue.

Collation delegates would work fine until garbage collection ran.
The next attempt to invoke the delegate on the unmanaged side
would throw an AccessViolationException.

Explicitly creating the delegate object, and holding a reference
to it, resolves the problem.

NOTE: This fix should also be applied to the other callback delegates, like `sqlite3_commit_hook`,  `sqlite3_update_hook`, `sqlite3_rollback_hook`, `sqlite3_trace`, `sqlite3_create_function_v2`, `sqlite3_config_log`, and `sqlite3_profile`.