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: Where map A is, and where map B is. It is now possible to
give this information, using a third parameter.

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.

Ready for review.