Optlang: Add some stuff for constraints on environment in run
Optlang: Some work on constraints, but needs to be changed
Optlang: Unify constraint types
Optlang: Bring back the constraint preservation proof
Optlang: Some work on defining non-pure optimisation
Optlang: Define optimiser (no proof yet)