Propagate `this`, track paths, `*` wildcard, fixup.

Properly tracking the path and providing it to JavaScript expressions.
Huge expense.

Also, when a path goes into an array, its up to the user to know to
`../..` to get back out of it.

`*` now acts as an object wildcard so that we can select all the
properties in a, then filter them based on name using the path.

Added a fixup function, so you can define a rewrite at each part of the
pattern, if you so choose. This can allow me to rewrite the langauge to
select out of `htmlparser` output.

Closes #53.
Closes #52.
Closes #50.
Closes #49.