Change representation of lens to fit putlenses implementation and adapt all combinators to use this representation.

We use the followin (simple) representation:
` type Lens s v = { put :: Maybe s -> v -> s, get :: s -> Maybe v } `
Add conditional lenses
Add nondeterministic example
Add test file for lens combinators
Add examples for usage of putlens-based combinators
Adjust schedule and add notes for paper on monadic putlenses combinators
Delete test.curry