Recycling PathSegments that are proven incorrect choices.
Flushed out the characters() method.  This includes functionality to
confirm that the element is supposed to receive content, and if so,
confirms that it does.
Fixing the different if/else checks for need-content vs. have-content.
Implemented walking up the tree.

Next up: testing.