Conditionally expose `Data.Bifunctor` module

Starting with GHC 7.9/7.10, `Data.Bifunctor` is provided by `base`,
hence `bifunctor` needs to stop defining its own `Data.Bifunctor` for
`base>=4.8`. By using `impl(ghc>=7.9)` we avoid the overhead of using
Cabal flags.

Moreover, in case of GHC>=7.9 we need to depend on `tagged>=0.7.3` as
the `Tagged` instance is provided there iff GHC>=7.9.
See also ekmett/tagged#20

This addresses #15