Remove HotSignals from ObservableProperty

It’s simpler to just vend one API, and easy enough to convert from cold
to hot anyways.
Fix type signatures and documentation in Action
Add HotSignal.buffer() to get a ColdSignal
Add HotSignal.replay()
Add ColdSignal.start() to get a HotSignal
Add ColdSignal.then()
Add ColdSignal.combineLatestWith
Minor tweaks to cold <> hot conversions
Add ColdSignal.first()
Refactor Action for new signal types
Update Foundation extensions for new signal types