Experiment interface WIP.
Initial charts WIP.
Charts WIP.
Charts WIP.
Make websocket url configurable.
Add link to experiment interface.
Bugfixes.

- Experiment.writeSketchEvent should accept 3 parameters.
- Wrap machine.protocol.transport.loseConnection in try/catch.
- Reset machine before starting experiment.
Allow dropping new properties onto charts.
Enable combining charts by dragging.
Allow reordering charts by dragging onto slots.
Charts WIP.

- Fix use of global variables - send full var name as "key".
- Fix use of multiple instances of same chart.
- Fix JS <-> Python time conversions (all in
octopus-experiment-runtime).
Chart styling, more chart options.
Property editor WIP.
Enable editing properties and variables.
Styling of property + graph buttons.
Change graph settings button colour.
Hide hover outlines on drop.
Machine block waits for ready before completing.
Add an interface for running experiments.

Interface allows viewing of properties and variables in numeric or
graphical format, reordering and combination of interface elements by
drag and drop, and modification of some display properties. Writable
properties and variables can be edited. The interface is not yet
persistent.

- Split the websocket protocol into different classes.
- Sketch/Experiment resolution occurs in BaseTransport.
- Modified some event names.
- Made websocket url configurable with a command line option.
Set alias on variables in workspace.