Add a third parameter to `applySourceMap`

The paths in the `sources` property of source maps may be relative. If
so, they are relative to the source map itself. When you apply a source
map A to another source map B, the source in map B that is associated
with map A will be replaced with sources from map A. If those sources
are relative, they need to be rewritten to be relative to map B instead
of map A. In order to do that, the `applySourceMap` method needs more
information: The missing piece between map B and map A. It is now
possible to give this information, using a third parameter: The path to
map A, relative to map B. (It can also be absolute, of course.)

This should be backwards compatible. If the third parameter is omitted,
the method works exactly like before: It assumes that both maps are in
the same directory, which makes all sources relative to both maps, which
in turn requires no rewriting.