Promote some delegations to higher strategy class
Extract strategy modules

This introduces a new pattern. Eventually, this will allow plugin
authors to more easily sprinkle behavior into their own strategies
without creating huge inheritance chains.