Stop to use instance eval for callback

CAUTION: THIS IS BACKWARD INCOMPATIBLE CHANGE!

Normally, block is evaluated without changing `self` in Ruby. For
example:

    elements = [1]
    elements.each do |element|
      p [self, elements] # => [main, [1]]
    end

But callback block in Cool.io is evaluated with changing `self` to
object that has the event. For example:

    require "cool.io"

    event_loop = Cool.io::Loop.default
    server = Cool.io::TCPServer.new("127.0.0.1", 2929) do |connection|
      connection.on_close do
        p(self == connection) # => true
      end
    end
    server.attach(event_loop)
    event_loop.run

We need to create a wrapper Proc to evaluate callback block in original
scope such as:

    require "cool.io"

    event_loop = Cool.io::Loop.default
    server = Cool.io::TCPServer.new("127.0.0.1", 2929) do |connection|
      self_in_tcp_server_new_block = self
      on_close = lambda do
        p(self == connection) # => false
        p(self == self_in_tcp_server_new_block) # => true
      end
      connection.on_close do
        on_close.call
      end
    end
    server.attach(event_loop)
    event_loop.run

The current API is inconsistent with built-in Ruby methods. API with
this change is consistent with built-in Ruby methods.

See also https://github.com/kou/cool.io/commit/c1c9a7ddfc50a6f1fedfad8f600bad79a2ff71c1#diff-0 for confirming how API change.