+str,htc #16071, #16072 New Stream Tcp and Http API

* StreamTcp and Http extensions now return Flows and Sources that can be materialized later
* Flow can now be completed with another flow to be turned into a runnable flow
* Java side of things is missing so tests will fail
Nice test! It is a bit low-level in places, if that is not fully intentional then the assertion could be changed to:
~~~scala
val sink = Sink.head[List[Int]]
...
broadcast ~> Flow[Int].grouped(1000) ~> sink
...
val mm = flow1 join flow2 run ()
Await.result(mm get sink, 1.second).toSet should be(result)
~~~