Introduce Apply, Bind, Alt, Plus and MonadAlt typeclasses

Add more flexibility to stdlib typeclass hierarchy