Refactor SubmitRuleEvaluator to reduce confusing arguments

The multitude of string and optional boolean constructor arguments was
a smell. Use a builder pattern for the optional ones, and add
multiple methods for the 2 valid combinations of 4 string arguments,
rather than requiring callers to know these magic values.

Most other constructor arguments could be inferred directly
from the ChangeData, so eliminate those as well.

Change-Id: I2554e8574722dc022956d3ca8db4ad0dc36f8c0d
5 files changed