Use sync instead of reloader

See https://github.com/rustyio/sync
Beginnings of manager
Add status method and basic error handling
Differentiate between the stream closing being closed remotely and by us in the client
Update manager to handle new return values
Add function to shutdown client
Add set params method, which restarts the client if needed
Only care about the current client when dealing with info messages
Minor refactor to spec to show default (empty) params are used if not specified
Add callback stuff to manager
Add method to set headers
Update readme