Lovin on the yubico-c-client

Firstly apologies for the monolithic commit. The changes ended up being more extensive than I first intended.

This commit creates a handle for managing persistent connections and adds the functions to manage it. This allows for persistent HTTP connections.

Users may also set arbitrary Curl options on the culrl easy handles within the handle, though it'd probably be a good idea to add an additional function to do this.

This commit also fixes a number of memory leak on error conditions, which would not be a problem for a small client application, but may become a problem for a persistent daemon especially as the template URL format isn't validated until the first request.

For new functions and some existing functions i've added doxygen headers, I encourage you to finish off the process and add a doxygen configuration.

The selftests script passes all tests, and valgrind under linux reports no errors:
```
All tests passed
--25763-- Discarding syms at 0x97c4140-0x97cba08 in /lib/x86_64-linux-gnu/libnss_files-2.15.so due to munmap()
--25763-- Discarding syms at 0x99cfb00-0x99d0868 in /lib/libnss_mdns4_minimal.so.2 due to munmap()
--25763-- Discarding syms at 0x9bd2fd0-0x9bd7da8 in /lib/x86_64-linux-gnu/libnss_dns-2.15.so due to munmap()
==25763== 
==25763== HEAP SUMMARY:
==25763==     in use at exit: 88 bytes in 3 blocks
==25763==   total heap usage: 20,689 allocs, 20,686 frees, 3,296,527 bytes allocated
==25763== 
==25763== Searching for pointers to 3 not-freed blocks
==25763== Checked 613,312 bytes
==25763== 
==25763== LEAK SUMMARY:
==25763==    definitely lost: 0 bytes in 0 blocks
==25763==    indirectly lost: 0 bytes in 0 blocks
==25763==      possibly lost: 0 bytes in 0 blocks
==25763==    still reachable: 88 bytes in 3 blocks
==25763==         suppressed: 0 bytes in 0 blocks
==25763== Rerun with --leak-check=full to see details of leaked memory
==25763== 
==25763== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 2 from 2)
--25763-- 
--25763-- used_suppression:      2 dl-hack3-cond-1
==25763== 
==25763== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 2 from 2)
```