add option support for URL and PORT, outline msg parsing and errors

So it looks like it went to 2 space indentation which makes it look like there are many more changes than there are. Sorry about that.
I have added the option to pass in objects instead of the usual parameters, this way we can specify our own HOST and PORT, to enable this module to be used for development testing ie. dogfooding. However, the API remains unchanged, and we could leave  it that way in the documentation.
The other prominent addition is the beginning of proper response handling in plot(). We still need to parse the incoming plotly message... Errors may be encountered in the Plotly infrastructure which we need to catch and pass back as the first parameter to the callback.