Changed HList split methods to return HLists of HLists (breaking change)

So     HList.split == Left :: Right :: HNil,   where Left & Right are HLists
       Tuple.split == (Left, Right),           where Left & Right are tuples
   Coproduct.split == Left :+: Right :+: CNil, where Left & Right are Coproducts