Fix TaskTest.nmap6 test

Fix #756.

Don't assume that thread scheduling is deterministic or that
Thread.sleep can be a form of synchronization.
(One could maybe also remove the Thread.sleep calls, to speed up the
test). Depending on the actual intent of the test, this might or might
not be appropriate.
Try making TaskTest more robust
Make TaskTest.nmap6 test robust with CyclicBarrier

See comments in code for details.
Add AdjunctUsage.scala showing one way of using an adjunction
Implement foldMapM - a fold for accumulating a monoid inside a monad
Use a right- instead of left-associative fold
Merge pull request #758 from Blaisorblade/topic/testnmap

Fix TaskTest.nmap6 test
Add Show instances for EitherT

This just shows the underlying instance, as opposed to wrapping it in
"EitherT(...)" or something. This follows the precedent set by ListT.
Add Show instances for OptionT

Similar to #772
Merge pull request #772 from ceedubs/eithert-show

Add Show instances for EitherT
Merge pull request #773 from ceedubs/optiont-show

Add Show instances for OptionT
Merge pull request #770 from stew/adjunction-usage

Add AdjunctUsage.scala showing one way of using an adjunction
Merge pull request #771 from bmjames/foldMapM

foldMapM - a fold for accumulating a monoid inside a monad
Add flatMapF to EitherT
Merge pull request #774 from ceedubs/eithert-flatmapf

Add flatMapF to EitherT