typesafe-core

Here's another attempt at making rx-core typesafe and still supporting dynamic languages. The previous attempt was https://github.com/Netflix/RxJava/pull/304.  Enough changed (including the 0.10 release) since I submitted #304 that it made more sense to start fresh with this one.  All the comments from that PR still apply, and the 'subscribe on map' issue is now handled.