Fix #19: lone surrogates should not be replaced by U+FFFD.

These can only occur in the input stream from arbitrary unicode
strings being passed into the parser (e.g., from script); no decoder
will emit them nowadays. This fixes us to match the current spec.
Merge pull request #35 from gsnedders/fix-19-lone-surrogate-replacement

Fix #19: lone surrogates should not be replaced by U+FFFD; r=jgraham