This reverts commit 1462ea5.
Change routines that were returning regular expressions that client code then needed to Do The Right Thing with into predicates that test whether a thing is valid or not. (Based on Ricardo's feedback).
Ricardo pointed out that it only passing the handle to one or two routines was kind of odd, and passing it to all of them was also a bit ugly. His solution was to make it an attribute of the reader. This commit does that.
The stock parse_value_assignment ignores it but fancier readers can use it to read multi-line values (e.g. here-doc style).
Needed for t/reader-err.t to pass. The bom check added in 1ec2633 is for UTF-8 input, and since 226272d t/reader-err.t checks for this. But that test only passes if the input actually is UTF-8. Mixin::Linewise changed to defaulting to UTF-8 in 0.100. With older versions of Mixin::Linewise, the input stream wasn't UTF-8, so the first character read wasn't a bom, but just the byte EF. So no ‘no bom’ error was thrown, and the test failed. Issue #7