wrap dbsqlok and dbsqlexec in rb_thread_blocking_region

Pull request for Issue #117

1) `rb_tinytds_result_ok_helper`
Wrapped `dbsqlok` in a separate method that also updates `userdata`.
The unblocking function sends a `dbcancel` and updates `userdata`.

2) rb_tinytds_result_insert
Wrapped `dbsqlexec` in separate method.
Reuse the same unblocking function to send `dbcancel` and update `userdata`.

3) Unit test modeled after mysql2 thread benchmark. Calls `TinyTds::TestCase#new_connection` and uses connection_pool gem.