Refactors the ordering mechanism to use strategy objects
Example groups can override the default ordering.

Also OrderingRegistry needs docs.
1.8.7 doesnt have define_singleton_method