Remove the need for most unsafe blocks and start creating a dedicated low-level module.

The idea is that callers of the low-level interface don't have to do anything unsafe unless they're mucking around with callbacks.

A number of other things I'd like to do is to add error checking on every setopt call, move the standard *write_buf *write_map callbacks to the curl_ll module and use them for http_request, and start working on some traits to make it more 'requests'-like.

Also, how did you generate the docs? Rustdoc seems to not do anything (just hangs for me it seems)

Let me know what you think about this rough plan and whether you have other ideas.