sqlite: pin the identity and the pooling of the FunctionContext in tests
Follow-up to !137 (merged), the tests offered in the review.
Problem. TestFunctionContextPerCall checks that the context handed to a callback is populated, not that it is the current invocation's. With acquireUDFCall changed to fill ctx only when it is zero and releaseUDFCall no longer clearing it, that test still passes while every callback after the first receives the first invocation's context; the first accessor to dereference such a context faults in sqlite3_context_db_handle.
Change. func_ctx_pool_test.go, three tests. TestFunctionContextIdentity: two functions evaluated in one statement must receive two different sqlite3_context values, and on each of two connections held at the same time, so that database/sql cannot hand out one physical connection twice, every callback's tls must be the connection's own, taken through Conn.Raw; nothing is dereferenced, so a stale context is reported rather than faulted on. It fails under the mutation above and passes on master. TestFunctionContextConcurrent: eight connections held at once on their own goroutines call a probe function 8000 times. TestFunctionContextNested: a function whose body runs a statement invoking another function, so a second pooled object is acquired before the first is released, and the outer context must come back unchanged. The last two are meant for the race detector, which nothing in the suite exercised for the pool before; both are clean under -race -count=2 here. Probe state is atomics and a mutex, so the tests stay race-free if run in parallel.
Full suite green on macOS arm64 (471 s).