More formal support for Scala

- This allows for type safety in statically-typed languages
 - This prevents dynamically-typed languages from hooking into rxjava-core.
 -- See #204 for details on code generation for dynamic languages

 * Added Scala implicits into rx.lang.scala.RxImplicits
 * Added tests of most methods on Observable using Scala functions
 * Fixed Scala Gradle/ScalaTest build