An implementation of Subsystems.

Review Request #2063 - Created April 11, 2015 and submitted

Benjy Weinberger
ity, jsirois, patricklaw, zundel
- Provides a Subsystem base class.
- Provides all the machinery for declaring subsystem use,
  subsystem option registration etc.

To keep this change reasonably-sized, no actual subsystems are provided.
However I have battle-tested this code by retrofitting two existing
classes (RunTracker and JarTool) to be subsystems. That code will
be submitted in a separate change, for ease of review.

CI passes, apart from presumably-unrelated jar shading issues:
(the failing test passes when I run it locally)

John Sirois
John Sirois
Stu Hood
Benjy Weinberger
Eric Ayers
Benjy Weinberger
Eric Ayers
Benjy Weinberger
Benjy Weinberger
Review request changed

Status: Closed (submitted)

Change Summary:

Submitted as 690e1873a3f09a350cdfa10d8b9a6a4cf8011dc9.