Reimplementation of Concat, improved handling of Observable<Observable<T>>.

The old version required all of the Observable<T>s to be generated and buffered
before the concat could begin.  If the outer Observable was asynchronous, items
could be dropped (test added).  The new version passes the test, and does the
best job I could (after examining several possible strategies) of achieving
clear and consistent semantics in accordance with the principle of least
surprise.
Incorporate review feedback.

Also restore the errant change to settings.gradle.
Merge branch 'upstream' into issue202
Rename Subject to PublishSubject
Introduce Subject as analogue to RX ISubject
Implement RepeatSubject
Extract UnsubscribeTester to top level
Beef up UnsubscribeTester
Beef up UnsubscribeTester some more
Add unit tests to PublishSubject
Merge branch 'master' into replay

Conflicts:
	rxjava-core/src/main/java/rx/operators/OperationTake.java
Resolve merge conflicts
Merge branch 'master' of git://github.com/Netflix/RxJava into issue202
Merge branch 'issue202' of https://github.com/abliss/RxJava into concat-merge
1.  Update javadoc on subscribe() blocking if observables are running on the same thread.
2.  Add test case with infinity observable.
3.  Add test case to unsubscribe() with all observables running in different thread (non-blocking).
Initial implementation for interval (#55). Needs a test scheduler...
Added a TestScheduler which collects actions in a queue and has
adjustable time.
Added a unit test. Fixed the implementation. Maybe still a bit naive
when it comes to intervals that are too small to keep up with?
Switched to a default scheduler that actually works together with this
operator.
Fixed indentation.