Operators: throttleWithTimeout, throttleFirst, throttleLast

- javadocs explaining differences
- link between throttleLast and sample (aliase)
- refactored throttleFirst to be a more efficient implementations
- concurrency changes to throttleWithTimeout
Use 'debounce' as proper name for ThrottleWithTimeout which unfortunately is the poorly named Rx Throttle operator.

http://drupalmotion.com/article/debounce-and-throttle-visual-explanation

Debounce: Think of it as "grouping multiple events in one". Imagine that you go home, enter in the elevator, doors are closing... and suddenly your neighbor appears in the hall and tries to jump on the elevator. Be polite! and open the doors for him: you are debouncing the elevator departure. Consider that the same situation can happen again with a third person, and so on... probably delaying the departure several minutes.

Throttle: Think of it as a valve, it regulates the flow of the executions. We can determine the maximum number of times a function can be called in certain time. So in the elevator analogy.. you are polite enough to let people in for 10 secs, but once that delay passes, you must go!

http://unscriptable.com/2009/03/20/debouncing-javascript-methods/
http://www.illyriad.co.uk/blog/index.php/2011/09/javascript-dont-spam-your-server-debounce-and-throttle/
Remove covariance of scan/reduce since consumer/producer are the same <T, T, T>

See https://github.com/Netflix/RxJava/issues/360#issuecomment-24203016
Javadoc with images
Change zip method signature from Collection to Iterable

Fix javadoc typos.
Merge pull request #370 from benjchristensen/zip-collection-to-iterable

Change zip method signature from Collection to Iterable
Operator: Retry

https://github.com/Netflix/RxJava/issues/72
Merge pull request #371 from benjchristensen/retry

Operator: Retry
Java example using Scala Observable code
IntervalDemo
add usability tests
add operation merge (as instance method)
add a int-version of buffer and window...

...and detect another compiler bug
Merge branch 'master' of github.com:Netflix/RxJava into idiomaticscala
Merge and work on RefCount
replace cast in window() by ascription

see https://issues.scala-lang.org/browse/SI-7818 for details
Merge and work on RefCount
Simplify reduce/scan generics

Updates based on discussion at https://github.com/Netflix/RxJava/pull/369#issuecomment-24255958
Merge pull request #369 from benjchristensen/reduce-and-scan-covariance

Remove covariance of scan/reduce
Merge pull request #368 from benjchristensen/throttle-and-debounce

Operators: Throttle and Debounce