Introduce maximum strength cap (implemented, not fully tested).
Implemented zero-cost factories. Not fully tested.
Introduce interfaces for factories - these will be renamed soon.
Split out access to internal node property on a factory into an internal interface, as it should be.
Rename factory interfaces to follow the 'INameOfInterface' convention.
Merge in strength caps, zero-cost subtrees, plus breakout of factory API into interfaces.