Fixing cobertura coverage so that it actually works.

Review Request #1704 — Created Feb. 3, 2015 and submitted — Latest diff uploaded

benjyw, ity, nhoward_tw

Changes in this commit:

- The three Cobertura phases are now invoked with different classpaths. This fixes problems where
jars in the full cobertura dependencies were conflicting all the time with jars in the run phase,
and publishing a shaded jar was too much of a hack for my tastes. This also allows for a different
reporting tool to be substituted for the reporting phase of cobertura.

- Three separate tools for the three stages of cobertura, as they need different classpaths and
different dependencies, to accomodate the previous point.

- Various fixes in how cobertura was actually invoked, in particular, the --auxclasspath option in
the instrumentation phase was crucial in getting reliable results.

- Miscellaneous code cleanups (see diffs)

travis-ci passed for