Improve HashMap with #map, #mapValues, #mapKeys, #foreach

Improve `HashMap` by implementing the following methods that we have found useful:
*  `#map`
*  `#mapKeys`
*  `#mapValues`
*  `#foreach`

In addition, add conversion to/from `java.util.Map`, and filter out calls to `#set` with a `null` value.