Generalized Subscribe() and associated data structure to:
* reduce the code
* make it more closely mirror the actual API call
* allow subscribing to multiple streams in a single call