Handle both json and simplejson in unit tests

The simplejson and the json modules differ in the way they handle
trailing whitespace when indent is set.

  >>> json.dumps({"foo":[1,2]}, indent=2)
  '{\n  "foo": [\n    1, \n    2\n  ]\n}'

  >>> simplejson.dumps({"foo":[1,2]}, indent=2)
  '{\n  "foo": [\n    1,\n    2\n  ]\n}'

With this change, the unit tests use the same json implementation as the
tested code instead of hardcoding the expected json string in this
situation.
Merge branch 'topic/unit-simplejson_vs_json' of git://github.com/olof/buildbot into nine
fix pyflakes
ClusteredService: a utility class to help arbitrate a service among multiple masters
ClusteredService: address review comments
ClusteredService: add docs; add isActive() method
Remove evil tabs; fix a duplicated test name
ClusteredService: fix unit test failure
Merge branch 'ClusteredService' of git://github.com/jaredgrubb/buildbot into nine
Move Schedulers base to ClusteredService
TrySched: move to activate/deactivate
Scheduler-ClusteredService: address review comments
 - fix up how the exception handling works
 - some comments and documentation
Merge branch 'SchedulerAsClusteredService' of git://github.com/jaredgrubb/buildbot into nine
fix pyflake