Make SourceNodes work with other newlines than \n

- Makes `.toStringWithSourceMap()` work correctly with other newlines.

- Makes `.fromStringWithSourceMap()` preserve the newlines of the input.
  This is useful when using SourceNodes to concatenate files with source
  map support, without modifying the files.
Improve code readability
Drop support for `\r` newlines
Merge pull request #103 from lydell/source-node-newlines

Make SourceNodes work with other newlines than \n