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.
The bound on Prefix doesn't always apply so I'm going to remove it (and re-establish it elsewhere, as needed).