ListT#headOption should be OptionT

This is a breaking change to the API, but it makes it more consistent with similar methods on other monad transformers, such as EitherT#toOption or OptionT#toLeft.

Also, it will break old code in a very obvious way with a compile error that can be fixed by adding a `.run`.