Tweaking monad laws based on Properness.
fixing some proofs.
MonadLaws for Option and Reader.
starting to work on the fuel monad.

- it looks like there is a need to talk about [ret] being maximal.
Implementation of Functor from Monad.
proofs of more monad laws.
what it means to be a type.
reworking the monad law proofs.
fixing up laws and adding proofs.
cleaning up a lot of definitions.
adding proofs for Hlist.
missing files.
adding a lemma about nth_error and map.
tactics for case analysis and injection.
adding SigT and an equivalence relation for HLists.
type instance for sigT.
proper hlist_app

- this unfortunately requires EqDec
fixing compilation problems.
don't import EquivDec
don't export EquivDec because it breaks <> notation.