ext/curl interface.c: modify curl_setopt_handler to allow resetting CURLOPT_HEADERFUNCTION callback

Sometimes it may be useful to remove a CURLOPT_HEADERFUNCTION callback (this
is supported in the cURL API by passing NULL as callback), e.g. when doing
cURL FTP with custom commands like MLST which need a CURLOPT_HEADERFUNCTION
to parse the server return, and then wanting to do other FTP commands which
would be irritated by the presence of a CURLOPT_HEADERFUNCTION callback.

This absolutely needs more work, especially checking if the
CURLOPT_HEADERFUNCTION handler was something other (like a stream redirect) -
the current implementation just checks if the previous handler was a user
callback and errors out otherwise.