Moved concept type alias out of "active" code.

This prevents SFINAE to work as expected, instead of failing with an
error on types that aren't monads.
Some fixes to eitherT's foldable instance.
Minor fixes to free fold* functions.
Additional tests for eitherT, dealing with foldables.