#115 Remove inheritance between Optics

This change is not ready yet, all the syntax (symbolic operators) part needs to be refactored.
Those modify's and set's do start to be duplicated quite a bit.
We should think of how to express the relationship they have in a good way.
(As now the foldMap in Traversal was removed some lines back, although it is still well defined)