Working on Gaussian matrix
ENH: Improve the plotting of timeseries.

Gaussian Markov chains can now be plotted using
bayespy.plot.plotting.timeseries_gaussian_mc. It takes the GMC
node as an argument. Also, added a scale parameter for the errors.
That is, the standard deviation can be scaled (default is 2).
BUG: Fix error scaling in timeseries plotting.

The standard deviation was scaled two times in different places
leading to scaling that was squared. Now it is fixed and the
default scaling for the standard deviation is 2.
ENH: Add einsum-like SumMultiply and array-like GaussianArrayARD

GaussianArrayARD is a node which gives a joint Gaussian distribution
for the elements of an array. Thus, the random variable is a
multi-dimensional array (like ndarray in NumPy). The existing node
Normal models scalars and Gaussian models vectors, thus this Gaussian
array generalizes those. However, GaussianArrayARD assumes that the
elements are independent a priori.

SumMultiply node computes sum of products of Gaussian arrays. It uses
the Einstein summation convention similarly as einsum in NumPy with a
few exceptions. Thus, this node is extremely flexible to model a large
number of operations on scalars, vectors, matrices and tensors.
TST: Add tests for SumMultiply and GaussianArrayARD
DEMO: Update demo for linear state-space model
DEMO: Update the demo for drifting LSSM (does not work yet)
TST: Add a simple test for Gaussian arrays node (GaussianArrayARD).
MAINT: Fixed the license to strict GPLv3 in source code files
TST: Add a comprehensive test for constructing GaussianArrayARD

The test checks that the node's shape and plates are inferred correctly,
and errors are raised properly.
TST: Add tests for GaussianArrayARD messages to children and alpha

The tests for GaussianArrayARD check that the moments are computed
correctly and that the second parent (alpha, type Gamma) receives
correct messages.
BUG/TST: Fix the message to 1st parent from GaussianArrayARD.

Fix the message computation and add unit tests. Message handling by
GaussianArrayARD should be working now.
TST: Add a test for GaussianArrayARD testing non-ARD children.

The elements in GaussianArrayARD are assumed independent a priori (ARD
prior). However, the elements may be coupled in the posterior. In order
to test that this is handled properly, the child node must have full
covariance. Thus, the test uses Gaussian node which has full covariance
matrix.
TST: Improve the unit tests for SumMultiply

The tests for message to children in SumMultiply were made more robust
and complex. A few simple tests for message to parents were added, some
more to come.
BUG: Update references to old function name

Timeseries plotting functions used the old name
_timeseries_mean_and_std, which had been changed to
_timeseries_mean_error. Now these references are updated.
DEMO: Import all demo modules automatically and add a function for running all demos
ENH: Implement efficient messaging to parents in SumMultiply

The message to parents is implemented such that it computes sums over
axes without computing the fully broadcasted message explicitly.
TST: Add tests for the message to parents in SumMultiply
API: Remove MatrixDot and references to it

MatrixDot was a class for computing the product of a Gaussian matrix and
vector. The more general SumMultiply has now replaced this class.
DEMO: Update demo for linear state-space model.