Use STStrMap in StrMap constructors

Eliminate some duplicate code in _unsafe helper functions.  Move all the
ST functions that involve StrMap out of the ST module to do this, and
make the ST module interface more directly parallel the STArray one
(including an unsafe peek).  It would be nice to have more ST
operations, but it's not clear the best way to provide them safely
without redundant code (the ones that were there before violated Eff
semantics).