Summary reporter + ability to get summary via API

Changes:
 - New reporter `summary`
 - `BaseReporter` now has two abstract methods: `print` and `get`
 - `NumberReporter` extends `SummaryReporter`, not `BaseReporter`
 - API changed:
   - there are now two functions `mkReport` and `summarizeCoverage`
   - `mkReport` returns raw coverage object
   - `reporter.print` method actually prints data