Better cobertura support for pants

Bringing HEAD up-to-date with what I have been running internally at Twitter since August 2014. I

have unit tests, but until https://groups.google.com/d/topic/pants-devel/p9ymS46qu0Y/discussion has
been addressed I don't think they provide any value.

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)

- Newer cobertura jar with bug fixes.