Adding Javadocs to external and internal classes.
Update Reactive Streams to 0.4.0.M2.

This changeset updates the dependency to the latest milestone release
and changes to code to fix the issues described pre M2.

Especially
	- backpressure now uses a long instead of an int
	- contravariance is used for the reactive streams subscriber