!str #15236 new transformer

This is far from finished, but I need to discuss.

The end goal of this is to provide a powerful, efficient, low level API for custom transformation operations. It is supposed to replace `Transformer`.

So far this is only using the API of the `impl.fusing.Op` (and subsclasses). These will be made more user friendly where needed. We can also consider providing higher level API that is more convenient for certain type of operations.

As first step I'm replacing all existing `Transformer` usage.

I'm currently stuck in `HttpEntity` and we must discuss how to go forward there. @jrudolph @sirthias should be part of that discussion.
I think we all agree that `Transformer` API is not good as user API in its current shape. The goal of this PR is to replace it.

My thought was that we could define a new API that is more efficient and easier to understand for the purpose of these ByteString transformations.

My API proposal is based on these things:
1. onNext can emit 0 or 1 element
2. onComplete can emit 0 or 1 element
3. onError cannot emit elements, but it can transform the exception

Are these assumptions correct for these ByteString transformers?

We could move this to akka-stream if that is preferred, and it does not have be specialised for ByteString if we think that is better.