Implement JRuby function wrapping support

Whenever a RubyProc is passed into an Observable method, wrap it in
a Java class that implements the correct RxJava interfaces. This avoids
ambiguous method errors and costly proxy instantiations by JRuby's
default method delegation logic.
JRuby wrapper specs
JRuby performance test
Handle OnSubscribeFuncs correctly in JRuby interop logic

OnSubscribeFunc#onSubscribe expects to return a Subscription. I am
unable to successfully cast the return value of a RubyProc, even if
that value _is_ an object that implements the Subscription interface,
into a Subscription in Java-land (Java reports that ConcreteJavaProxy
cannot be cast). Instead I allow JRuby to handle OnSubscribeFunc
arguments through its default proxy logic, which works correctly.
JRuby README
JRuby license headers