Implementation of 'DefaultMap' and 'getOrElse'.

Closes #152.
I would rename `value` to `orElse`. It's consistent with the naming for `putIfAbsent()`