(cosmetic: comment phrasing)
Documented why Semigroup typeclass is necessary in Scala 2.9

Hid the typeclass inside an object to avoid polluting namespace,
and explain clearly that it's due to a Scala bug, and the view
and context bounds regardling TraversableLike should be sufficient
in future versions of Scala.
Remove typeclass instance for String, support via view and context bounds.

Conversion to private Semigroup typeclass now works for anything with
a TraversableLike view, including String and Array. The typeclass is strictly
only necessary to assist Scala's type inference.