Split constructor of Connection

This method was just to unwieldy.
This can be seen as a first step to introduce a Faraday Factory.
I'm not super happy with this solution… We define `DEFAULTS` but those do not include this required middleware options. I understand that we don't want to make those optional (Although the middleware to parse JSON is likely to be changed). What about not defining those here but in the caller. The factory doesn't know anything about the concrete Ashikawa requirements. That said we should only make the `additional_middlewares` optional.

I know, we already took too long for this, but what do you think?