Support rule coverage reporting

This is a big commit that should have been broken up, but it's late.
Among other changes:

* New --coverage command-line argument.  Use it with --dry run to get
  a reasonably speedy report.
* New "analysis" build target
* Multiple repository rule inheritance now supported
* No longer replicating inherited branches in the AST

Note: we could probably reduce the detected coverage if we dealt with
commits we decide to skip (e.g. because something was added and
deleted in the same commit).  However, I'm not sure we could eliminate
those rules anyway; the process may still depend on them matching.