Extend DepFnN for some HList ops

For the sake of consistency with the majority of the other HList Ops
type classes
Merge pull request #167 from ceedubs/extend-depfn

Extend DepFnN for some HList ops

This looks like a totally unobjectionable change to me. Hope I'm not overstepping my authority (obligatory: mwhaahah) in merging this.
Add return type to apply methods, changed some to use Aux
Merge pull request #175 from stacycurl/apply-aux

Add return type to apply methods, changed some to use Aux
Common assertTypedEquals and assertTypedSame

They are now in a common `testutil` object instead of being implemented
in multiple files.

First suggested in
https://github.com/milessabin/shapeless/pull/165#issuecomment-48813493
Merge pull request #176 from ceedubs/testutil

Common assertTypedEquals and assertTypedSame

LFTM. There's an assortment of other assertion methods around, maybe they could be moved to testutil too.
Added head & tail to Coproduct
Rename Coproduct append/Append to extendRight/ExtendRight
Added extendLeft to Coproduct
Adding scanRight to HLists
Adding scanLeft and scanRight to tuples. Documentation.
Merge pull request #163 from wheaties/scanLeft

Scan left
Merge pull request #166 from stacycurl/coproduct-head-n-tail

Added head & tail to Coproduct
Merge pull request #168 from stacycurl/extend

Renamed Coproduct.append to extendRight, added extendLeft
Merge branch 'master' into scala-2.10.x