Prove that O preserves products without funext
Work around bug 3638

This is https://coq.inria.fr/bugs/show_bug.cgi?id=3638, "Anomaly: Bad
recursive type. Please report." on [set]ting an evar involving
primitive projections
Remove dead code
Add more documentation to tactics in ReflectiveSubuniverse
extrafancy tactic is unnecessary
Revert other fancy tactic
Merge pull request #518 from mikeshulman/refl-subu-prod

Prove that O preserves products without funext and without tactics