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.