Fix bugs in my `PartialOrd2` implementation.
Make `PartialOrd` use the new linear codesize implementation.

Swap the `PartialOrd` and `PartialOrd2` implementations, thus leaving
the old implementation around and thus easy to recover if needed.
Bug fix: Address unreachable-arm lint in single variant case.
Move `deriving(TotalOrd)` to the new linear code size expansion.
Removed support for `PartialOrd2` now that `PartialOrd` seems to work.
Remove the `NonMatchesExplode` variant now that no deriving impl uses it.
A useful generalization of when to filter out the catch-all.

Sets the stage for having *all* enum deriving codes go through
`build_enum_match_tuple` and getting rid of `build_enum_match`.
Removed `EnumNonMatching` entirely.

Made all calls to `expand_enum_method_body` go directly to
`build_enum_match_tuple`.

Removed a bunch of code that became dead after the above two changes.
Remove now irrelevant `on_matching` field and `HandleNonMatchingEnums` type.