Added Literals selectDynamic macro

Allows one to write
```scala
val l: Literals.`2, true, "a"`.T = 2.narrow :: true.narrow :: "a".narrow :: HNil
val c1 = Coproduct[Literals.`2, true, "a"`.S](2.narrow)
val c2 = Coproduct[Literals.`2, true, "a"`.S](true.narrow)
val c3 = Coproduct[Literals.`2, true, "a"`.S]("a".narrow)
```

Will also be useful with overloads of `zipWithKeys` methods, in my next PR.