fix(frontends/lean/inductive_cmd): generate error for inductive datatype declarations that will produce an eliminator that can only eliminate to Prop
feat(kernel/level): improve is_geq procedure for universe levels

Now, it also returns true for

          (succ^k1 a)  =?=  k2

where k1 >= k2
feat(library/unifier): generalize method process_succ_eq_max_core
feat(kernel/level): improve universe level pretty printer

Example: produce `l+2` instead of `succ (succ l)`.
feat(frontends/lean): better default for atomic notation
fix(util/lean_path): change the default LEAN_PATH, a file in the current directory cannot shadow a library file, fixes #321
feat(library/algebra/ring): begin theory of semirings and rings
chore(library/logic/wf): remove unnecessary `:max`
test(tests/lean/run): define subterm relation for trees by hand
feat(frontends/lean/structure_cmd): generate no_confusion for structures too
test(tests/lean/run): define subterm relation for vectors
test(tests/lean/run): simple diag for square matrices
feat(library/data/vector): use 'mechanical' definitions, and add 'last' function

The 'mechanical' definitions are "mimicking" what the definitional
package will do.
feat(library/data/vector): add 'zip' and 'unzip' functions
refactor(library/data/vector): cleanup, use variables, add concat
refactor(library/data/subtype): define subtype using 'structure' command
feat(library/data/prod/wf): define relational product and prove wf theorem for it
refactor(library/data/option): cleanup using 'no_confusion'
perf(kernel/level): apply two simple normalization rules at mk_max

They are variations of:
max l1 (max l1 l2) == (max l1 l2)
refactor(library/data/sigma): break file into smaller pieces to reduce dependencies