Extended Merge to be 'renderable'

The merge idiom now carries a constant applicative functor in order to build up
a view of the merge. Specifically, the output of running the Merge idiom is a
product of both the merge result (Maybe a) but also a forest of a different type
which represents the view. This forest can be of any custom type, provided there
are sufficient instances of 'Render' to 'render' into that type - for example,
you could render with HTML, or JSON, etc. This forest then needs to be
sufficiently interpreted (which could just be a fold, but could be something
more elaborate).