DEMO: Fine-tune drifting LSSM demo 1
ENH: Add plotting utility to nodes

When creating a node, you can give a function as a keyword argument
`plotter`. This function plots the node. So, creating a node as:
  X = Node(plotter=my_plotter_func)
and using the new plot method as:
  X.plot(kwarg1='foo', kwarg2='bar')
is identical to calling
  my_plotter_func(X, kwarg1='foo', kwargs2='bar')
Thus, it is easy to plot the distribution of the node by just calling
`plot` method.
ENH: Implement a few plotters for plotting nodes

Plotter classes can be used to create callable objects which can be
given as plotting functions when creating nodes. Three plotters have
been implemented now:
  GaussianMarkovChainPlotter
  GaussianTimeseriesPlotter
  GaussianHintonPlotter
When constructing the plotter, you can give keyword arguments which are
passed to the corresponding plotting function.
ENH: Add plotting and monitoring to VB inference class

Class VB has now method `plot` which can be used to plot the
distribution of the nodes in the model. In order to plot a node, it must
have a plotter defined. You can also plot only some nodes by giving the
nodes or their names as arguments. In addition, VB.update plots the
distribution of a node after updating if `plot=True` is given. Because
a node is plotted to a same figure each time, this enables easy and
visual way to monitor the VB algorithm.