HList split methods reverted to return Tuple2

Not a strict revert because 
 1) The split syntax methods return (split.Prefix, split.Suffix)
 2) I've added new overloaded methods (ending with 'P') that return Prefix :: Suffix :: HNil
 3) I've aded ProdDepFn1 which has two methods apply(l: HList): (Prefix, Suffix) & unified: Prefix :: Suffix :: HNil, apply is implemented in terms of unified (so less performant at runtime than before).
 4) OCD removal of trailing whitespace.

Of course I'm open to changing any of the above.