Revert deprecations, make DList abstract

After thinking about it, I realized it wasn't necessary to deprecate these
functions. Some people prefer to use the non-type-class versions, so I shouldn't
force them otherwise. It's best to be more conservative in the changes, too.

It's useful to compare this commit with 349293ef171b7aa151b2475acd773f50a2c67169
to see the actual changes up to this point.
Clean up tests with eqWith, eqOn

In particular, use non-type-class functions where possible. (Many
were previously deprecated.)
Improve runtime of properties

* Reduce n for replicate
* Remove traverse property
Enable cabal test on Travis-CI
Remove the (inefficient) Traversable instance
Move -O2 from ghc-options in .cabal to pragma in .hs

Allows cabal check to be used.
Enable cabal check on Travis-CI
Remove maybeReturn

This function is not directly relevant to dlists. It belongs with MonadPlus or
some other relevant library.
Remove re-export of Monoid interface

At first, I was thinking the re-export would be useful because one of the
primary use cases for dlists was the append/<>. And this made sense if I was
deprecating/removing functions that conflict with the list versions. But now I'm
thinking people will import this qualified, so it doesn't make sense to
re-export Monoid/<>.

To get an idea what's changing in the next version, diff with
349293ef171b7aa151b2475acd773f50a2c67169.
Better error messages
Include GHC 6.12.3 in Travis-CI coverage