Implementation of 'DefaultMap' and 'getOrElse'.

Closes #152.
Needs documentation. Something like:

Returns the value for [key] in Map [m]. If [m] does not contain the key [key], then [value] is invoked to generate a  value. The value is not added to the map. If you want to add the new value to the map, consider using [Map.putIfAbsent].