Additional refactoring of 'concentric' helpers and 'acey deucey'.

Have acey deucey use `_o concentric`, which allows us to "see" whether the
ends are going to run over the centers or not.  We also refactor
concentric/cross concentric to use the `_center 4` helper to avoid
having to duplicate the special "center" cases.  This requires us to
use `_apply`, and so refactor its evaluator slightly so that it is
transparent to the various fractionalization and parts-counting
transformations.

Tweak `_o concentric` to shrink the center down to a 2x2 when evaluating
ends, which helps us write general definitions for the ends that work
even when the centers are a 1x4, etc. This also makes `transfer and`
work more reliably as well.