Add map() and flatmap()

As discussed in #11.
Any particular reason why you opted for `.insert` over `+=` for this?