Add to marble diagrams

Add several new or more-specific marble diagrams, correct two bad image
links, correct some typos
Commentary on constructing an Observable

- I would like to remove the no-arg constructor but not ready to pull the trigger
Prevent direct instantiation of BlockingObservable via no-arg constructor

- also questioning why to allow extending this and would like to make it a private constructor
Common approach for IllegalArgumentException on subscribe methods

As brought up in https://github.com/Netflix/RxJava/issues/278 there were inconsistencies in how arguments were being validated on subscribe methods.

All arguments to subscribe are now validated correctly at the beginning of method invocation and IllegalArgumentException thrown if null arguments are injected.

According to Rx Guideline 6.5 a null argument is considered "a catastrophic error occurs that should bring down the whole program anyway" and thus we immediately throw. A null argument should be caught immediately in development and has nothing to do with subscribe invocation which is what guideline 6.5 is talking about (since a null Observer can't have onError called on it anyways).
Throw if no onError handler specified

https://github.com/Netflix/RxJava/issues/198

As per Rx Design Guidelines 5.2:

 "when calling the Subscribe method that only has an onNext argument, the OnError behavior will be
 to rethrow the exception on the thread that the message comes out from the observable sequence.
 The OnCompleted behavior in this case is to do nothing."

A new OnErrorNotImplementedException was created so it is explicit as to where the exception is coming from and why.
Merge pull request #285 from DavidMGross/master

Several new or more-precise marble diagrams
Fix PublishSubject non-deterministic behavior on concurrent modification

- changed to take snapshot of observers.values() before iterating in onNext/onError/onCompleted so that nested subscriptions that add to observers can't change the values() iteration
- single-threaded nested subscriptions are now deterministic
- multi-threaded subscriptions will no longer be allowed to race to get into an interating onNext/onError/onCompleted loop, they will always wait until the next
- also improved terminal state behavior when subscribing to a PublishSubject that has already received onError/onCompleted

https://github.com/Netflix/RxJava/issues/282
Merge pull request #287 from benjchristensen/error-handling-and-validation

Error handling and validation
Editing javadoc comments

Many changes to the javadoc comments, filling in blanks, making comments
more accurate & precise, making formatting more consistent, etc.
Javadoc changes

Tuning up the Blocking Observable javadocs, and settling on a consistent
set of terms throughout: Observers (not subscribers) subscribe to
Observables which invoke (not call) the Observers methods (not closures
or functions) in order to make notifications (e.g. error or complete) or
to emit (not output or send) items (not elements or objects or emissions
or values).
Synchronize terminalState and subscription logic

- remove the race condition that existed between a subscription coming in while onError/onCompleted was being called
Merge pull request #288 from benjchristensen/issue282-PublishSubject

Fix PublishSubject non-deterministic behavior on concurrent modification
GroupBy GroupedObservables should not re-subscribe to parent sequence

https://github.com/Netflix/RxJava/issues/282

Refactored to maintain a single subscription that propagates events to the correct child GroupedObservables.
GroupBy unsubscribe logic

- support unsubscribing from parent and/or child
- The following is now possible:

```
groupBy().take(1).mapMany(group -> group.take(20))
```

- the subscription on the parent will cause new groups to stop being sent, but it will keep sending events until all previously created groups are unsubscribed from
Add Object overloads for dynamic language support.

Need these until we finish work at https://github.com/Netflix/RxJava/issues/204
Give unit test some room for scheduler variability

- I specifically want to be testing with real threads here and not virtual time or a synchronous sequence so am giving it a range of counts that are acceptable
Merge pull request #284 from benjchristensen/issue282-groupBy-fixes

GroupBy fixes as reported in Issue 282