Implement (almost) full binding of libuv.

Most functions of libuv should be now implemented.
mruby-uv use `UVError` for libuv error now.
Pointer getting from `mrb_value` will now use `mrb_uv_get_ptr` to check already destroyed pointer.
Missing methods are implemented.
Some FS sync operation is implemented.
`Idle`'s multiple initialization is fixed.
Methods returning `nil` now returns self.
Following classes are implemented:
* Once
* RWLock
* Cond
* Key
* Check
* FS::Event
* Poll
* Stat

Future work:
* Async operation should return mruby wrapped `uv_req_t`.
  * Wrapped value should have `cancel` method which is binding of `uv_cancel`.
  * Sync operation should use `uv_req_t` allocated to stack.
* Implement CRuby standard library using mruby-uv as backend.
* Refactor FS operation.
  * Functions `uv_fs_f*` should be a method of class `UV::FS`.
  * Support custom `uv_loop_t`.
* Support functions that use `uv_os_sock_t`.
  * (`tcp_open`, `udp_open`, `uv_poll_init_socket`)
* Test improvements.
  * Support travis-ci testing.
  * Add more tests.
    * Port some of them from libuv tests.