trailing whitespace - anal I know, sorry! :)
add a vim modeline
add valgrind wrapper script

also add xml report to gitignore, and perl suppressions
fix mem allocation errors

- calling tostr on newly allocated memory doesn't make sense. Instead
  simply use the scalar object address as the id.

- FFI::Raw expects to have control over the regions it allocs, and will
  try to free them at program end. Likewise, libuv also expects to have
  control over its handle structures.

  To resolve conflict manually malloc memory of the correct size and
  pass to uv
need to call uv_close to cleanup handles

create the requisite uv_close_cb and simply call libc free on the passed
in handle
uv_loop_delete must be called

When we're done with any loop created via uv_loop_new, we must call
uv_loop_delete to ensure libuv correctly cleans everything up

Stuffing it into DESTROY has many problems, but just a stop-gap fix for
now
ensure callbacks don't get cleaned up prematurely

FFI::Raw was prematurely cleaning up callbacks due to scoping issue.  As
a fix for now, return the callback along with the timer id to the
caller, to ensure it exists at a high enough scope.