Change the shortest-chain axioms a bit

Change the shortest chain axiom to read “if a chain has length equal to
lambda then it is a shortest chain”
Use instance arguments in chain type

Using instance arguments now allows us to
 - Use element names in chain cons
 - write more readable proofs
Change shortest predicate and rewtite shortest-irred
Lots of changes

* Introduce functions for going to and fro between chains p chains and
l-chains
* Make a setoid - ChainsWithProperty - essentially a Sigma type with
irrelevant snd
Lemma 2.1

Start proving Lemma 2.1
Few utility functions added