Add support in SourceMapConsumer for indexed source maps

Fixes #16 (or at least the consumption part of it)

This is a WIP, but consumption of indexed source maps seems to be working. Let me know if you see anything going complete the wrong way, or if there are additional things that need implementing that I'm missing.

I'm not totally sure where the documentation for each of the functions should live - should I create stub functions on `SourceMapConsumer.prototype` that just throw errors saying they must be overridden, and place the documentation there? Or is it okay to duplicate the documentation between `BasicSourceMapConsumer` and `IndexedSourceMapConsumer`?


After thinking about this a little more, I'm not sure that composition is a sensible thing to do here.

What will `SourceMapConsumer` do that the Base and Indexed versions will not do?

This is particularly awkward because `IndexedSourceMapConsumer` will need to have references to `SourceMapConsumer` for the consumers for the section maps. So we'd have:

`SourceMapConsumer` has an `IndexedSourceMapConsumerImlementation` has many `SourceMapConsumer`s.

instead of just

`IndexedSourceMapConsumer` has many `SourceMapConsumer`s.

If you're adamant that using delegating with composition is the right thing to do, I can convert it, but I have 3 arguments against:

1. This is certainly an "is-a" relationship, not a "has a". The fact that we'd be appending "Implementation" to the end the class name is indicative to me that this is awkward.
2. This doesn't solve the circular dependency problem, because as mentioned above, IndexedSourceMapConsumerImplementation would still need to be able to construct instances of SourceMapConsumer
3. This adds a lot of code bloat with all the manual delegation calls in SourceMapConsumer.