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).