Renamed Coproduct type class 'RemoveElem' to 'Remove'

+ Change the result of apply to be Either
    (the coproduct result can be obtained by calling Remove.coproduct)
Fixed hygiene bug in witness generation.
ToTraversable[HNil, M[_], T] with T not Nothing
ToSized[HNil, M[_], T] with T not Nothing
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.
hlist ops implicit not found comments
imported implicitNotFound