use cpphs to unliterate *.lhs files
fix tests exetuble build

Cabal does not pass -main-is flag to ghc since its ghc-specific
flag so ghc confuses Main.main and Main_test.main functions for
test-fast-tags executable.

Moreover, assertions used by testing facility will be removed once
optimization is applied, so optimization is disabled explicitly as well.