ENH: Enable observations consisting of multiple variables
ENH: Make shape_from_value method unused and remove it

Exponential family nodes have initialization from value. The
previous implementation required the node to have shape_from_value
method. The implementation of the initialization was improved
and the method became unused, thus it can be removed from all
classes.
ENH: Update plates only if needed in node constructor
ENH: Add a sketch of Gaussian-Wishart node
ENH: Refactor constructors to return args and kwargs

This makes it possible to use Mixture node for such node classes
which modify the parents in __init__ method. Also, this makes
__init__ method unnecessary for most node classes because everything
is done in _constructor method.
ENH: Check nans in mixture distribution natural parameters
TST: Suppress warnings in unit tests
TST: Add unit tests for Dirichlet node
ENH: Ensure int type in categorical random sampling
TST: Test initialization of categorical node
ENH: Resolve plates using moments in constant node

Thus, Constant node does not require ndim_observations anymore
because it infers that information from the moment arrays.
TST: Suppress warnings in categorical node unit tests
ENH: Remove ndim_observations dependency from Mixture node class
ENH: Remove ndim_observations from Moments classes
ENH: Remove unused ndims_parents

Mixture node can infer the ndims of parents from parents' dims
attribute.
ENH: Remove ndims attibute from distribution classes
BUG: Fix constructor in Gaussian Markov chains
DEMO: Add no-monitor option to LSSM demo
DEMO: Fix initialization in LSSM-SD demo
ENH: Add Gaussian-gamma ISO and ARD moments