feat(library/algebra/ring): begin theory of semirings and rings