Plat 556 http rest proxy watching

When using this to watch (eg, etcd) it's difficult for debugging to have to catch exceptions, and we need to get data as it comes, not only once the connection is closed.

These changes allow for the HTTP Rest Proxy to be used in this context.
The exceptions boolean does not change the behaviour of the entire class, only of the given method call.  It's for when you make a call to something you know may time out under normal conditions, and you don't want to catch an exception.

The change you propose would require restructuring the entire class and everything that uses it, as the connection would live outside the method call and would need to be tracked and waited on asynchonously.  Passing in a lambda does keep it synchronous, as it's clear that the onData method only will be called for as long as the method call lives.  In other words for the caller it's still synchronous, but the caller can inject some logic into the stream about what to do when it gets data.