Overhauled LuaTypeSet, which is now a product lattice.
Made `advanceTableType` (used to analyse table member assignment) more precise.
Pacifying -Wall.
Fixed a stack overflow bug, implemented NFData for LuaTypeSet.
Improved precision on booleans.

* Used Powerset(Bool) instead of {Bottom,Top}.
* Because it's such a small set, we derive constant table keys
  for booleans directly from this new powerset.
More precise analysis of string types.