- Added Router. GetFetcherChanges which returns an IObservable<Fetcher> for a given Topic and Partition

  o Based off of the fixed ISubject for PartitionStateChanges (used to be named PartitionReadyEvents)
  o Broadcasts the correct Fetcher for the partition if there is one, or NULL if the partition state is not ready.
- Added class ‘TopicPartition’ with
  o The beginnings of logic to allow a Consumer to subscribe (currently just a single consumer, may be able to relax this at some point)
  o Subscription to the Router’s FetcherChanges, and a reconnect when there is a new Fetcher available for it
- Extended Fetcher with
  o A ReceivedMessages observable that flattens the FetchResponse stream using the SelectMany logic from the existing router functions.
  § NOTE: I will be moving the FetchResponse stream to private at some point as I don’t think that is of concern to anyone else
- Renamed most variable name references to Transport to _protocol (feel free to rename the actual class)
- Started adding some Disposable / Cleanup to various subscriptions
- Added Offset to ReceivedMessage so that TopicPartition can track its offsets.