Add capacity hint version of Observable.cache()

- Special case in ReplaySubject for create(1) to optimize for single emitted value

- Add unit tests for Observable.cache(1) and ReplaySubject.create(1)

@benjchristensen is this the kind of solution you wanted for #1303?
This looks like an unnecessary case as it replicates the unbounded replay behavior with default capacity 2.