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.