Implement `else` directive.

Implemented the `else` directive by invoking the `if` directive. The
`else` directive has been implemented in terms of the `elseif`
directive, but there are no tests for the `elseif` directive yet.

Closes #69.
Merge branch `else` into `redux`.
Fix NPE reporting unmatched text or comment.

The `t/compare.js` function would dereference null when a comment or
text node was unmatched.

Closes #66.
Display documents when `t/compare.js` fails.

Dump the expected and actual documents to standard out when
`t/compare.js` fails.
Implement `elseif` directive.

Closes #70.
Merge branch `elseif` into `redux`.
Fix backwards unravel.

In an attempt to be clever with respect to the number variables used in
the unravel logic, I ran though the directive children backwards thereby
throwing off the count of characters by counting the leading characters
in the directive body instead of the trailing characters.
Use `path` given to `rewrite`.

Rewrite will now use the path given as a parameter as the base of paths
generated by the descent, instead of always starting with an empty path.
Remove `depth`.

The `depth` property appears to be unnecessary.

Closes #68.
Merge branch `each` into `redux`.