generate/require a test support factory

This switches to require a modern assert version that provides factory
logic.  This then auto-generates and requires in a top-level `Factory`
implementation that extends assert's factory.

This means all generated gems will have factory logic available by
default.

@jcredding ready for review.