allow contravariant use of Subscriber

fixes #104
also update README to match new Publisher.subscribe

(and fix one case of request(int) in the examples)
Merge pull request #108 from rkuhn/wip-contravariant-subscriber

allow contravariant use of Subscriber
Publish 0.4.0.M2
Update README.md
Revert "Temporarily Remove TCK Implementation"

This reverts commit db606f7e33892ddf458769a5c05cf139ed75e17d.

Conflicts:
	tck/src/main/resources/spec.md
Initial come-back of TCK

Includes:
* Initial tests for spec rules for Publisher / Subscriber
* The Processor specs delegate to all pub / sub specs
* Additional Processor rules are REMAINS from the OLD TCK,
  and have not yet been pruned / cleaned up.
* Added travis to build; there is only one test which validates that all
  pub / sub rules are properly delegated to from the processor test.
* Tests now fail in isolation, previous TCK could cascade one test
  failure to multiple tests failing

Please review and share feedback, it's still a bit early and needs more polish.
The classes I would ask you to focus on are PublisherVerification and
SubscriberVerification.
TCK: review follow ups and additional tests / blackbox tests
* Make spec rules linkable (#2.13) and use links in TCK
* Verified 1-element-publishers are testable with TCK (skips unsupported tests)
+ moved 3.2 from subscriber tests to publisher tests
+ moved 3.4 to publisher
+ moved 3.6 spec to Publisher
+ check rule 3.3, assuming publisher breaks the reccursion
+ Splitting subscriber whitebox / blackbox tests
+ both got verifications of rule 2.3
+ whitebox is the previous impl
+ blackbox is tests which work without any additional probes
  it mostly wrapps the subscriber in order to check things
+ better 2.10 verification in blackbox
+ test was testing onComplete instead of onError like it should
+ better blackbox tests for 2.9
+ more java-doc style java-docs (added {@link}s)
+ minor cleanups and refactors to make BlackboxProxy more understandable
+ added missing delegation of boundedDepthOfOnNextAndRequestRecursion
+ improved error message when expecting error message
Added tck/README.md which includes info on how to use the TCK
Updated TestNG dependency to 6.8.5
More fine-tuning of the specs, fixes of mistakes uncovered by akka-streams

+ checking 3.9 in PublisherVerification
+ better error messages on expectThrowingOf
+ fixed 2.5 tests – they were checking the wrong things
+ checking 1.13 must be optional, because some publishers dont support fan-out
+ inverse condition in 3.13 to avoid NPE, and report a nice error
+ checking 1.7 should give more demand, then pull based publishers will
  notice that their source has been drained and complete the downstream
+ checking 1.13 should give more demand, as if the publisher is
  pull-based, it would not notice (and has 0 buffer space), it would not
  notice that it's source has been drained, and would not complete the
  stream.
Added optional printlnDebug mode
+ more logging in Processor verification
+ 3.9 check; fixes typo introduced during 0 semantics change
+ fixed typo in error string
+ reworked 2.12 test
added some thoughts about when to use Whitebox subscriber spec
Remove mustUnblockTheStreamIfABlockingSubscriptionHasBeenCancelled

Rationale:
It was part of the previous TCK, but I find it hard to support for
different kinds of Publishers we might have. One example being "hot"
Publishers. One might argue that the TCK must then silence this test
as it can not "buffer" the required amount of elements. Also, this test
is not directly testing TCK rules directly (but involves the in-order
requirements and buffering implicitly)...
rebased on top of 0.4.0.M2 changes