Use Istanbul as a CoverageCollector

This is a way I try to hook ``Istanbul``. I want to do something like you can switch to different collector and reporter, but I don't know what the reporter should be for the original ``cover``.
How do you feel the json file output by ``istanbul``? I think it is general enough to do all kind of transformation.

https://gist.github.com/hankhsiao/853a4a0fff6995cd18b3

It should be easy to understand: ``statementMap``, ``branchMap``, and ``fnMap`` generated by ``esprima`` are about the mapping to the actual code segments. And ``s``, ``b``, and ``f`` are the times of statements, branches and functions being executed. It should be pretty flexible for you to format your own coverage.

So I'll go setting ``text`` and ``json`` by default, and the configuration can be override. Is it good for you?