Add ContT monad by johnynek · Pull Request #2506 · typelevel/cats

ContT is a challenging Monad to implement if you need to implement tailRecM. The addition of the Defer typeclass solves this problem. This PR replaces the unmerged #1400. cc @non