Make `unmark` return a parent/refernece pair.
Make `unmark` return a parent/refernece pair.

The `unmark` function would return nothing. Now it returns an object
containing the parent node of the marker and the next sibling. The
`mark` function expects an object containing these properties and will
insert a directive marker comment before the next sibling of the marker
that was removed by `unmark`. Alternatively, the `mark` function can
still accept a DOM node and it will insert a directive comment marker
before the given DOM node.

The parent node and reference pair returned by `unmark`  allows us to
remove a marker before inserting replacement nodes. This added
flexibility may be useful when implementing more complicated directives.

In particular, I'd like to remove contents of an else directive if I'm
going to replace it with the contents of an if directive. I'm not
certain if there won't be a flicker where the user will see the new
block added before the old block is deleted. If the user can perceive
the DOM manipulation I want her to see the old block disappear before
the new block appears.

bigeasy/stencil,bigeasy/stencil,bigeasy/stencil