watchman: rust: restructure request dispatching
watchman: rust: restructure request dispatching

Summary:
This diff changes some internal plumbing to be closer to supporting
subscriptions.  The underlying stream is now owned by a ClientTask which
manages the request/response processing.

Differential Revision: D18598227

fbshipit-source-id: 6b081aac195136e5cb1218f61f504b56dddf862e

facebook/watchman,nodakai/watchman,facebook/watchman,nodakai/watchman,nodakai/watchman,nodakai/watchman,facebook/watchman,facebook/watchman,facebook/watchman,facebook/watchman,facebook/watchman,facebook/watchman,facebook/watchman,nodakai/watchman,nodakai/watchman,nodakai/watchman,nodakai/watchman,nodakai/watchman