refactor(library/logic/prop): allow 'absurd' to generate Type
refactor(library/logic/if): mark basic theorem transparent
refactor(library/data/nat): declare lt and le asap using inductive definitions, and make key theorems transparent for definitional package

We also define key theorems that will be used to generate the
automatically generated a well-founded subterm relation for inductive
datatypes.
We also prove decidability and wf theorems asap.
refactor(library/logic/connectives): mark theorems used to prove 'decidable' theorems as transparent

if we don't this, then 'if-then-else' expressions depending on theorems
such as 'and_decidable', 'or_decidable' will not compute inside the kernel
refactor(library/data/nat): prove auxiliary theorems about < and sub asap for the definitional package
feat(library/logic/if): add dependent if-then-else: dite
test(tests/lean/run/div_wf): cleanup div based on well founded recursion
fix(library/logic/wf): typo
feat(library/logic/default): add wf_k
feat(library/data/nat): add more basic theorems for definitional package
refactor(library/data/nat/div): use well-founded library for defining div, mod and gcd
feat(library/data/nat/div): remove some 'sorry's
feat(library/data/nat/decl): add 'measure'
refactor(library/data/nat/div): simplify 'gcd' definition
fix(library/data/nat/div): notation should be local
fix(tests/lean): adjust tests since module 'logic' depends on nat

We need that because of the definitional package
feat(hott/types/sigma): port large part of the sigma library from the hott library

most importantly, prove the characterization of paths in sigma types
feat(hott/path): add notation for higher and dependent transports
fix(hott/trunc): comment out sorry
refactor(data.prod): move theorems about products from data.quotient.util to data.prod.thms