Add failing test.
Refactor SubstitutionContext

- Reorder methods so public interface is more clear
- Make methods private
- Don't allow substitute to be changed
Only Strings and Regexps are substitutable
Clarify substitution methods intent.
Merge pull request #11 from rails/fix-false-substitution

Fix #9: Substitution context replaces `?` with false.
Add failing test showing disparity between html and xml.
Wrap document_root_element in nodeset so root is selectable.

Nokogiri didn't select root elements in XML documents when an otherwise matching selector was used.
Wrapping a node in a nodeset fixes this.