Fixup RoundManager scheduling for phases that depend on themselves.

Handle this case explicitly and add test coverage for the
RoundEngine.

This also adds proper cli phase de-duping and validation
that requested data products actually have a producer.

https://rbcommons.com/s/twitter/r/644/