Rule versioning artifact

* Implement rule versioning support in a separate Maven artifact
  * Add the `RuleDependency` annotation interface for specifying a rule dependency in code, and the `RuleDependencies` annotation interface to allow application of multiple `@RuleDependency` annotations to a single element in code.
  * Add the `Dependents` enumeration for specifying complex relational dependencies
  * Implement an annotation processor for validating rule dependencies
* Restrict changes in the Tool itself to the minimal code necessary for implementing this feature:
  * Add the `RuleVersion` annotation interface
  * Add the `-rule-versioning` command line argument to the tool (disabled by default)