fully strict semantics

Make the semantics fully strict. In particular, this means that
environments are of type 'list Val' instead of 'list (option Val)'. I
also started proving specialisation correct.
adapt other modules
complete unfinished proofs
renaming

trans -> Trans
trans' -> Trans'
introduce let bindings
adapt the proofs

antisymmetry and syntactic causality still missing
completed the remaining proofs
cleaning up and some documentation
fix extraction

no HOAS interface for let bindings yet
HOAS interface for let bindings