Improve error handling of user provided Observers

https://github.com/Netflix/RxJava/issues/216
Protect subscribe/forEach implementations against user provided function failures

Related to https://github.com/Netflix/RxJava/issues/216

The new forEach unit test went into a deadlock prior to this fix.
Restrict identification of "internal" operators to only the rx.operators package

- based on discussion at https://github.com/Netflix/RxJava/pull/221
- don't wrap at AtomicObserver again
- anything outside of rx.operators will be wrapped
Merge pull request #221 from benjchristensen/issue-216-error-handling

Error Handling Improvements - User Provided Observers/Functions