Renamed Map::insert to Map::set; `insert` gives the idea that you are inserting a new value when in fact a value can be overwritten. The name `set` reflects that better.

 Also cleaned up some docs.