first design stab at API refactor
first design stab at API refactor

this splits up the way to interact with endpoints into a simple and an
advanced usage way. The simple way mostly corresponds to the old API. The new
way is via a `connection` object that can be configured with different
properties.

related to #27, #31, #33

embeddedmz/restclient-cpp,mrtazz/restclient-cpp,embeddedmz/restclient-cpp,mrtazz/restclient-cpp