Type-safety in rxjava-core, dynamic language support via compile-time code generation, and Scala support via implicits

Implementation of ideas here: https://groups.google.com/forum/#!topic/rxjava/g6Z9KyMM8zs

This addresses #204 and #208 .