[gui] some improvements for Matplotlib1DVisualizer

- for codim==0, create plots which are constant over each grid cell
- allow to render plots in separate subplots
- add padding to ylim
[parameters] add __str__, __repr__ to CubicParameterSpace
[parameters] ensure alphabetical order in ParameterType.__repr__
[parameters] beautify output of CubicParameterSpace.__str__
[docs] fix typo
[pod] 'tol' parameter now determines smallest singular value (not its square)
[algorithms.newton] add 'stagnation_threshold' parameter, return error_sequence and be more verbose
[la.pod] also return sequence of singular values
[algorithms.basisextension] add 'orthonormalize' parameter to pod_basis_extension
[docs] add missing documentation
[algorithms] Fix gram_schmidt_basis_extension for copy_basis == False
[tests] adds prototype functional testing of demos
[tests] fixup functional test runner to close child procs (GUIs)

also allows expected failures in GUIs when PySide is missing
[algorithms] fixes error in gram_schmidt call
[tests] potentially fix thermalblock_gui functional test
[tests] new tests for newton-algo and vtkio
[algorithms] fixes newton default arg handling
[algorithms] fixes error in gram_schmidt call
[algorithms] fixes newton default arg handling
[la] add VectorSpaces to  VectorArrayInterface

This commit introduces the concept of VectorSpaces to pyMOR.
This involves the following changes:

- VectorArrayInterface gains a 'subtype' property. Two arrays
  are compatible if they are of the same type and subtype.
  (Think of the subtype as, e.g., dimension or a socket for
  communication with a particular PDE solver instance.)
- A 'make_array' classmethod has been added to VectorArrayInterface.
  This method is used as a factory for arrays of null vectors.
  An appropriate 'subtype' has to be provided, when calling
  'make_array'. The resulting array will be of this subtype.
  (What appropriate means, depends on the specific array
  implementation.)
- The methods 'empty' and 'zeros' of VectorArrayInterface are
  now methods (not classmethods), creating arrays of the same
  subtype as the array, they are called upon.
  NOTE: As a consequence, there is no longer an interface for
  creating VectorArrays of arbitrary dimension.
- The new VectorSpace class represents the combination of a
  VectorArrayInterface subclass with an appropriate subtype.
  This data is exactly sufficient to construct new arrays
  using new 'make_array' method. A VectorArray is contained in
  a vector space, iff it is an instance of the subclass and has
  the same subtype.
- VectorArrayInterface gains an abstract property 'space',
  returning the space of the array, i.e.
  'VectorSpace(type(self), self.subtype)'
- The 'dim_source', 'type_source', 'dim_range', 'type_range' attributes
  of OperatorInterface are replaced by 'source' and 'range'
  VectorSpaces.
- The 'dim_solution', 'type_solution' attributes of
  DiscretizationInterface are replaced by the 'solution_space'
  VectorSpace.
- For convenicence, a 'NumpyVectorSpace(dim)' method was added,
  returning VectorSpace(NumpyVectorArray, dim).

Everything in pyMOR has been updated accordingly, except for
playground.remote which at the moment is not working.