feat(library/hott) add groupoid definition
feat(library/hott) prove that a groupoid on contractible object type is a group
feat(library/hott) prove that each group is a contractible groupoid
feat(library/lean) add one types as instances of groupoids
feat(library/hott): multiple changes in the HoTT library

Jakob accidentally undid some of my changes in commit aad4592, reverted that;
made style changes in multiple files;
in types/sigma: finished porting Coq-HoTT, and finished unfinished proof;
in axioms/funext: rename path_forall, make arguments implicit and make instance visible