Fix memory leaks caused by bad finalizers

If a finalizer is passed a proc, and that proc has a reference to the object
that it is supposed to finalize, your objects will never get garbage
collected.

http://www.mikeperham.com/2010/02/24/the-trouble-with-ruby-finalizers/ talks
through some of this, but the high level is you end up with a reference chain
of:

    collection_of_finalizers -> proc -> object

That proc can't be collected because it's being held in the finalizer set, and
that proc references the object, so the object can't be collected.

affects typhoeus/ethon#30
fixes typhoeus/ethon#34
fixes typhoeus/typhoeus#229
Tag this as a special version
Remove unneeded .rb from some requires
Rename perf/ethon.rb to benchmarks so we can make more perf tests
Add a memory leak testing script
Fix form object memory leak

Make sure to free the first form entry with curl_formfree
http://curl.haxx.se/libcurl/c/curl_formadd.html

Also, switching the form pointers to normal ones, since we're manually freeing
the memory associated with them.

fixes typhoeus/ethon#43
After calling curl_easy_escape call curl_free

I think this all could also be simply replaced with CGI.escape, but we can
change that later.

fixes typhoeus/ethon#44