Make `MR::Factory` just extend `Assert::Factory`

This updates `MR::Factory` to extend `Assert::Factory` instead of
re-doing the same logic it does. This removes a lot of duplicated
code between the 2 libraries. This also has the effect of making
assert a runtime dependency of MR, not just a development
dependency.