Make ap's consistency with bind a monad law.
Remove Apply, Applicative implications for EitherT, LazyEitherT.

They are inconsistent with the implied Monad, as a consistent ap requires Monad.

Also fix the ap order in EitherT.ap, while leaving it inconsistent.
Make map's consistency with ap/point an applicative law.
Rename `{,Lazy}EitherT.ap` to `app`, to clarify that it is not the true `ap`.
Merge pull request #255 from S11001001/topic/bind-ap-consistency

Make bind, ap, point, map relationships monad/applicative laws