Improve aurora "job diff" command.

Add a new diff method, which uses field-by-field comparison of JSON trees for comparing running job configurations to potentially updated configs.

- Allow exclusion of semantically irrelevant fields.
- Provide a clearer list of the differences between configs.
- Provide a scripting-friendly alternative JSON syntax for diffs.

The old diff behavior is still available under the "--use-shell-diff" option.

Testing Done:
New unit tests of the JSON tree diff code, plus a bunch of new "job diff" tests of the new functionality.
All tests pass.

Bugs closed: aurora-520

Reviewed at https://reviews.apache.org/r/22457/