Fix that it was impossible to specify other Transport class for Client
Since the Transport class requires a Client instance and Client requires the Transporter to be defined at construction, it was not possible to pass an instance of a Transport class to the Client. Now we simply specify a string with the name of the Transport class to be used and the Client will instantiate it.
Create a common Transport class to extend from when creating custom Transport layers
Add a Transport class which utilizes curl's CLI to offer async transport layer