This might be a bit nitpicky, but seems like you always want to merge the supplied options on top of the default options. Someone using this might want to override CURLOPT_HEADER, for example, but not overwrite return transfer, or doesn't want to worry about (or doesn't know) about $wgHTTPProxy. 

Probably more useful if this class were to make it into core, though.