Add libuv build helpers

Add libuv:{init,clean,compile} rake tasks to simplify building libuv
dependency outside of the extension compilation process.

Also ensure libuv gets cleaned when 'clean' is invoked.
Avoid shell out in gemspec and narrow file selection

Shelling out and assuming Rake executable is `rake` might not work under
some Ruby's installation that suffixes with version information (like
rake18 or rake19).

Also shelling out produces a recursive loop if you attempt to load the
gemspec from inside Rake, which blocks usage of `rake gem` or similar
packaging tasks.

Last but not least, narrow down the selection of files to be included in
the gem, which avoids the need to cleanup and exclude useless files like
tests and such.

Also removed fields that are set automatically and match the defaults from
RubyGems (date and bindir respectively).
Make easy to build gem from Rake

You can now invoke `rake gem` or `rake package` to build the gem, which
will be placed inside pkg directory (ignored from now on).
Use rake-compiler to build extension

Rake-compiler provides the required build tasks that works across
platforms and prepare the ground for cross-compilation.
Correct ignores and placement of compiled extension
Copy uv.a to libuv.a

Make libuv.a so have_library can detect it.
Use make to compile bundled libuv

Instead of shelling out, make libuv a dependency of OBJS and build it
only if a non-system version exists.

Use CPPFLAGS to send -fPIC option since CFLAGS is used in MinGW to define
custom header locations. Setting that up broke the compilation of libuv.

I've included some FIXME notes for review, as -fPIC seems redundant in
some cases where Ruby already uses it.

Also using C99 when Ruby has been compiled with C90 becomes a flood of
warnings that might need investigation.
Remove arpa/inet required header

Let libuv handle the headers (specially when this one is not available in
all the platforms).
Use -fPIC for both Linux and Darwin platforms
Whitelist libuv.mk in gemspec
Correct linking order for Winsock

Ruby redefines some Winsock functions and that affects libuv making it
segfault under Windows.

Push ws2_32 up in the dependency list so linking to the original functions
takes priority.

This at least solves the segfault.
pull from luislavena