All recommended/optional dependencies are now required.

This ensures a consistent & optimal experience for all users.
Also, it makes our code a lot simpler since we don't have to
generate wrappers that run all the tests without the optional
modules.

Generally speaking, I feel we should avoid recommended/optional
dependencies unless there is a really compelling reason to
permit users to not have them (like because they don't work
on certain platforms or perls).