Optimize sqlite::Connection::updateHook

The lookup in the hooks container causes a temporary string to be created & destroyed each time the hook is invoked, which will happen at least once per insert/update/delete, and likely more when triggers get invoked.

The save is not major, but since it seems most of the time is now spent in malloc/free, that's still a nice save.

This also uses xxHash instead of the default C++ hash, so this is based on !470 (merged)

before: before

after: after

Merge request reports