Combine ordering logic into one file.

- There's no need for so many tiny files.
- 1.9 has known perf issues with require,
  so doing one require instead of 4
  should speed up pert a bit.
- This keeps the ordering logic all in one
  small (< 100 LOC) file.
Extract srand allowance.
Remove unneeded code that came from Sam's earlier PR.
Remove stray, confusing comments.
2.0 shuffles differently.

This spec failed on 2.0. This change makes it
more resilient.
Refactor ordering registry.

- Use two of them (one for examples, one for groups),
  rather than having a single one with separate,
  duplicated methods for examples vs groups.
- Rename `resolve_example_ordering` to `#[]`. It has the
  semantics of a hash lookup, after all.
- Add `global_ordering` for the case where that is
  explicitly needed.
Change dependency injection of configuration.

To me, it makes more sense to pass it to `Random.new`
and to retain it as instance state on that object.
Injecting it in the `order` method is a little odd,
as it complicates the `#order` interface for all the
other strategies, even those that don't use the
configuration at all.