Added some concrete monads, applicatives and functors
Removed old versions of Option and List monad
Added SetMonad
Removed generic type parameter for Functor, Applicative and Monad