Add test cases for mappings and end of lines

As discussed in <https://groups.google.com/forum/#!topic/mozilla.dev.js-sourcemap/Uo26hB5v5oY>.

Note that the first `util.assertMapping()` call currently fails. This is
expected since, at this point, we don’t follow the spec in that case.
Fix: Generated mappings end at EOL

This is to follow the spec.

As discussed in the [mailing list][1], when getting original positions,
mappings end at the end of the line. However, when getting generated
positions, mappings do not end at the end of the line.

[1]: https://groups.google.com/forum/#!topic/mozilla.dev.js-sourcemap/Uo26hB5v5oY

Getting original positions:

For a generated position (L,C), find a mapping (L,X) such that X<=C and
X is as great as possible. If no such mapping can be found, then there
is no mapping for (L,C). This is because according to the spec, mappings
end at the end of the line. Previously, we used to look for mappings on
lines <L too.

Getting generated positions:

For a generated position (L,C), find a mapping (A,B) such that A<=L, A
is as great as possible, B<=C and B is as great as possible. If there
are multiple such mappings, I don't know which is or should be chosen.
The spec doesn't say anything about it. The idea is at least that
multiline source statements usually (ideally) only have a mapping at the
beginning of the multiline statement. Then it is convienient to be able
to get the generated position even if you're not at the first line.

Note that this change is backwards incompatible. There were even tests
for the faulty behavior in test/source-map/test-dogfooding.js! I had to
change them, which of course breaks backwards compatibility.
Merge branch 'mappings+eol' of https://github.com/lydell/source-map into lydell-mappings+eol
Merge branch 'lydell-mappings+eol'