sss/open-union: adding OpenUnion2 from okmij.org

ghc 7.8 has closed type families which allow us to have open unions
without the need for overlapping instances.

source: http://okmij.org/ftp/Haskell/extensible/OpenUnion2.hs
sss/open-union: fixup: whitespace
sss/open-union: integrate OpenUnion2 w/ OpenUnion1

- Data.OpenUnion2 -> Data.OpenUnion.Internal.OpenUnion2
- Data.OpenUnion.Internal.Base: refactors common code such as Union
  and (:>)
- Data.OpenUnion.Internal.OpenUnion{1, 2}: compiler specific
  implementation of Member and MemberU2 (~ SetMember) classes
- Data.OpenUnion1: same external-facing interface as before, but
  internally calls on appropriate Internal module. This will be moved to
  Data.OpenUnion as part of version 1.8.0.0
- Control.Eff.Lift: replaced specific Lift-centric SetMember instance
  with more generic one via MemberU2 instance

fixes #21
sss/open-union: MemberU2 -> MemberU

Data.OpenUnion.Internal.OpenUnion{1, 2}.{MemberU2 -> MemberU}
sss/open-union: version bump

resolves #21
sss/travis: MIN_TOOL_VERSION_ghc -> __GLASGOW_HASKELL__

cabal version on travis doesn't seem to support MIN_TOOL_VERSION_ghc
macro in .hsc files.

relevant link: <https://github.com/hesselink/flock/pull/1>