refactor(ring_theory/algebra): use bundled homs, allow semirings (#2303)
Fixes #2297
Build fails because of some class instance problems, asked [on Zulip](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Need.20help.20with.20class.20instance.20resolution), no answer yet.