Share option parsing between all haskell backend

Note: I am pretty sure that TargetHaskellGadt and TargeProfile only
support a subset of those options but the old help screen seems to imply
that they should all support the same flags.