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
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

I've been manually running this as:

    RUBY_HEAP_SLOTS_GROWTH_FACTOR=1 RUBY_HEAP_MIN_SLOTS=1 RUBY_HEAP_SLOTS_INCREMENT=10 RUBY_HEAP_SLOTS_GROWTH_FACTOR=.1 ITERATIONS=75000 rspec -I lib -I profile profile/memory_leaks.rb

The ruby GC settings are that way to try and make ruby increase memory really
slowly, so that we can get more accurate info on what's going on.

ITERATIONS can be whatever, but I've been running it with a really large number
so that I can be more comfortable with the results.
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

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
Merge pull request #45 from richievos/fix_finalizer_memory_leaks

Fix memory leaks

Conflicts:
	lib/ethon/easy/form.rb