avoid allocate unnecessary new objects

Cherry-picking pull request #402 (1856686)
fix NumericPLens

Cherry-picking pull request #404 (cd6a5b7)
fix infinite loop bug of Traverse[EphemeralStream]

old implementaion of `traverseImpl` calls `Traverse#foldRight`
this cause following infinite loop

```
[error] scalaz.EphemeralStreamInstances$$anon$2.traverseImpl(EphemeralStream.scala:107)
[error] scalaz.Traverse$Traversal.run(Traverse.scala:36)
[error] scalaz.Traverse$class.traverseS(Traverse.scala:58)
[error] scalaz.EphemeralStreamInstances$$anon$2.traverseS(EphemeralStream.scala:107)
[error] scalaz.Traverse$class.runTraverseS(Traverse.scala:61)
[error] scalaz.EphemeralStreamInstances$$anon$2.runTraverseS(EphemeralStream.scala:107)
[error] scalaz.Traverse$class.foldLShape(Traverse.scala:100)
[error] scalaz.EphemeralStreamInstances$$anon$2.foldLShape(EphemeralStream.scala:107)
[error] scalaz.Traverse$class.foldMap(Traverse.scala:104)
[error] scalaz.EphemeralStreamInstances$$anon$2.foldMap(EphemeralStream.scala:107)
[error] scalaz.Traverse$class.foldRight(Traverse.scala:107)
[error] scalaz.EphemeralStreamInstances$$anon$2.foldRight(EphemeralStream.scala:107)
[error] scalaz.EphemeralStreamInstances$$anon$2.traverseImpl(EphemeralStream.scala:118)
[error] scalaz.EphemeralStreamInstances$$anon$2.traverseImpl(EphemeralStream.scala:107)
```

Cherry-picking dc67e99
add clearing of message from tail node to avoid memory leaks when queue is empty and no new messages come

Cherry-picking pull request #396 (718ef70)