Change socket options type from `immutable.Traversable` to `Traversable`

The problem with `immutable.Traversable` is that it doesn't allow the use of `Seq.apply` for socket options, since `Seq` is aliased to `scala.collection.Seq` and not `scala.collection.immutable.Seq` in `package object scala`. Even though technically nicer `immutable.Traversable` therefore hinders usability of the API, for a benefit that we don't consider worth the cost.

Conflicts:
	akka-io/src/main/scala/akka/io/TcpConnection.scala
Cleanup, small fixes and more and better tests