Wrap curl handles and multi handles in their own structure and add functions to create and destroy those handles

User agent string is static and doesn't need to be built on each request

Move construction and configuration of curl multihandles out of ykclient_request

Move freeing of curl handles out of ykclient_request

Set default URLs during ykclient_init

Memory for expanded URLs should be part of handles

Move URL generation out of ykclient_request

Move nonce generation out of ykclient_request

Use the correct type for return codes

Break out error parsing into a separate function

Break out request processing into a separate function