Replace module level factory functions with type constructors

Previously, although "Curl" was advertised as a type, `pycurl.Curl` et al were really global factory functions that returned instances of the Curl type. The biggest issue this caused was inability to properly document pycurl objects. `pycurl.Curl.setopt`, for example, did not exist, as Curl was not a type.

This PR transforms the old factory functions into constructors in `tp_new` slots. This makes it possible to expose actual types as `pycurl.Curl` and such, making documentation work properly.