Added operator[] support.

 - It is documented that find() and insert() are faster, but this exists
 mainly for convenience so that it is not necessary to write:

   if (!table.insert(...)) table.update(...)

   to update a value.

 - When key is missing, about 50% slower than insert(...) due to the
 need to find first.
 - When key already exists, is about the same speed.
 - Changed the update functions to templatize around the Updater. This
 is generally faster since that permits lambda to be inlined rather type
 erased through the std::function.