Synchronize runtime, build and test phase prereqs

This avoids a CPAN.pm bug where these are incorrectly merged.

Fixes #238
add merged fallback prereqs for EUMM
refactor requires merging
add merged fallback build/test prereqs for MB
Fix "fallback prereqs" for old build tools

We need a carefully constructed set of fallback prereqs because
the old tools might not be able to handle all prereq types.  The
old merge was naive and only worked on numeric versions.  (Ugh.)

Now we precompute the fallback at build time instead, since we
know the author has the needed tools to do it correctly.
update prereq to ::Readers, not just Mixin::Linewise

...because some people/tools then try to load Mixin::Linewise

...which is fatal
move runtime/build/test prereq sync to finalize

Instead of running in register_prereqs, we hook before finalize so that
we only sync after all PrereqSources have run.  This is both more
efficient and avoids errors if plugins directly manipulate the
requirements.