Updated StringScanner patch:
* Moved into separate file so that it can be included individually by other libraries.
* use charpos where possible (starting with Ruby 2.0) to handle multibyte chars.
* added spec
* default line_number_offset to 1 if not set explicitly. This simplifies usage of the patch.
Changed line_number_offset to start_line_number to make it obvious that it is one-based (and not zero-based).