Fixed deadlock in Subjects + OperatorCache.

Fix for Issue #971.

- I had to rewrite OperatorCache to allow testing for deadlocks in all Subject types.
- The terminationLatch was unnecessarily waiting for existing subscribers to deliver their termination events, which caused deadlock with repeat().
- Treating subjects as internal implementations was not necessary to fix the problem.