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)