Rakefile: try to guess make program the same way it is done in gem builder
hiredis: extconf try to guess make program
Improve Rubinius support in hiredis

When profiling a Sidekiq app, this showed a few places in hiredis that
could be changed with not affecting MRI in a bad way, but improving
performance on Rubinius.

Because Rubinius has a generational garbage collector, writes to an
array need to go through a write barrier. If a C extension uses
RARRAY_PTR, this works around the barrier. For this, Rubinius has to
setup additional support by scanning the whole array when returning from
a C extension function call. This mechanism is only activated when
RARRAY_PTR is used.

By not using this but by using the normal array accessor functions, this
is prevented. On MRI using these functions or RARRAY_PTR don't make any
significant difference.

For strings Rubinius uses a similar mechanisms if extensions modify a
char* if data is modified directly. To disable this copying back there
is a define that can be used to disable it. Since hiredis-rb doesn't
seem to be modyfing buffers obtained with RSTRING_PTR, I've also enabled
this optimization.

Since for Ruby 2.1, MRI is also working on a generational GC, this can
also potentially be an improved for newer versions of MRI if they choose
to use similar mechanisms for optimizations.

This also marks a few global variables that the gem defines as actual
globals so they don't get accidentally garbage collected.
Merge pull request #5 from royaltm/master

Guess make the same way as gem builder does
Merge pull request #13 from rubinius/improve_rubinius_support

Improve Rubinius support in hiredis
Fix submodule URL
Bump hiredis to 0.11.0
Update URL and summary in gemspec
Use rb_fd_thread_select if available

The rb_thread_select function will be deprecated for newer versions of
Ruby (>= 2.1 AFAIK). To preemptively fix this, use rb_fd_thread_select
if it is available.

Also see: https://bugs.ruby-lang.org/issues/9502#change-45212

Thanks to @camilo in #20 for the initial version of this patch.
Use version of Rake that still works with MRI 1.8.7
Fix compiler warnings
Abort if building hiredis fails
Use relative path to refer to hiredis directory

This fixes #11.
Have Travis run tests against newer Rubies
Bump minor version
Update Travis badge
Update hiredis URL
Fix typo
Fix memory leak for MRI >= 1.9.2

The rb_fdset_t API was introduced in 1.9.2 as an alternative to using a
POSIX fd_set (see select(2)). It was created to support systems that
allow passing file descriptors higher than FD_SETSIZE to select(2) (also
see [1]).

To do this, the file descriptor bitmap is dynamically allocated and
resized as they are set. This means that unlike the POSIX fd_set, it
also needs to be freed when done. I missed this in f85e8c65.

[1]: https://github.com/ruby/ruby/blob/ruby_1_9_2/thread.c#L2228-L2253
Bump patch version