Fix bug which prevents report being rendered.

I suspect this is a regression, but I'm not sure as of when!
Convert warnings to use warnings module
Add WebSocket subscription tool to smap-subscribe

This makes it easy to test both methods of subscribing to real time
data.  Efficency-wise, there should not be much difference.

Also tweak the url query generation in the client library to deal with
inconsistent treatment of null-valued query params (eg, "private=").
Autobahn was not recognizing that a value was passed so you wouldn't
get the apprpriate behavior.