Widget support

This pull-request is for adding Widget support to IRuby. The contents of these patches can be divided into 2 parts as follows:
### Comm support
Comm is a new messaging system implemented to IPython2.0 or up. Widgets use Comm to sync values between front-end and kernel, and this pull-request enables IRuby to support full of comm system.

### Custom Widget support
Now we can implement our own Custom widget like [this movie](https://www.youtube.com/watch?v=faR_wURQy84). In the movie ODE solver on the Ruby VM is solving an equation and JavaScript front-end is drawing the result at the same time.
We can define new custom widgets like that by inheriting `IRuby::Widget`.

This pull-req do not contain useful pre-installed widgets like `FloatSlider` or `SelectWidget` (shown [here](http://nbviewer.ipython.org/github/FRidh/ipython/blob/master/examples/Interactive%20Widgets/Widget%20Basics.ipynb)). But we can soon implement those sort of widgets based on `IRuby::Widget`.

I will rewrite the code If these modifications are too destructive.
And I'm also ready to publish examples of widgets like one shown in the movie :)
Thank you!