Record/union refactoring and enhancements.

* Reworked Record/UnionType as Record/Union.`...`.T.
* Factored out Record/Union commonality into Labelled.
* Renamed shapeless.ops.hlist.Union to ToCoproduct.
* Added shapeless.ops.coproduct.ToHList.
* Added Record/Union named args constructor.
* Added record merge.
* Added general support for implementing named args method in terms of
  records via RecordArgs trait.
Merge branch 'master' into scala-2.10.x
Backport to 2.10.x.