=str #15755 #15756 source and sink

sorry, deleted the old branch by accident, previous discussion was at #15786 
yes, it is for empty ops, and we preferred to invoke source.attach with the top subscriber as param, but when empty ops there is no top subscriber, unless we create an identityProcessor

the failing tests are related to:
- fan-out behaviour, so that part might go away
- equality check of the Publisher, which was perhaps a questionable requirement by the Spray guys