Created and wired an implementation for the throttle operation on Observables.
Ensure static star imports are used for test cases.
No longer using Notification<T> for scheduling throttled events.
Cleaned up imports and removed unnecessary final keywords in the OperationThrottle class.
Fixed a typo the UnitTest class of OperationThrottle.
Merge branch 'operation-throttle' of git://github.com/michaeldejong/RxJava into throttle-merge

Conflicts:
	rxjava-core/src/main/java/rx/Observable.java
	rxjava-core/src/main/java/rx/concurrency/TestScheduler.java
Operator: throttleWithTimeout

Another take on `throttle` … I believe this matches Rx.Net behavior.

This will wait until timeout value has passed without any further values before emitting the received value.
Operator: throttleFirst

Another take on `throttle` … this delivers the first value in each window.
Update javadoc for throttleLast
Update javadoc for throttleWithTimeout
Merge branch 'operation-throttle' of git://github.com/michaeldejong/RxJava into throttle

Conflicts:
	rxjava-core/src/main/java/rx/Observable.java
	rxjava-core/src/main/java/rx/concurrency/TestScheduler.java
Merge branch 'throttleWithTimeout' into throttle

Conflicts:
	rxjava-core/src/main/java/rx/Observable.java
Merge branch 'throttleLast' into throttle

Conflicts:
	rxjava-core/src/main/java/rx/Observable.java
	rxjava-core/src/main/java/rx/operators/OperationThrottle.java
Merge branch 'throttleFirst' into throttle

Conflicts:
	rxjava-core/src/main/java/rx/Observable.java
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
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