Add some theorems about equivalence of equiv and iso in set_cat
Factor the hom set equivalence into a part not needing funext

This is so we can use it to show that adjunctions preserve
initial/terminal objects (and, more generally, universal morphisms,
kan extensions, (co)limits, etc).