[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.
[la] fixes to ListVectorArray
[tests] new one for lincomb function
[tests] new ones for extension algs + parabolic_demo
[algorithms] fixes unhandled default arg in implicit euler timestepper
[demos] allow toggling Rect/TriaGrid in cg demo
[tests] also test Q1 ops via cg demo with RectGrid
[tests] allow running demo tests from outside pymortests package
[tests] revamp MonomOp to use numpy's Polynomial class internally
[operators] lincomb op gets a __sub__
[tests] new ones for lincomb op_base
[tests] couple more demo runs with diff arguments

parabolic is already included in demos now
[tests] new gmsh test that calls all grid tests with gmsh instance
[tests] new test for patch visualizers
[tests] allow simplified_engquist_osher flux in burgers demo
Merge remote-tracking branch 'origin/master' into functional_tests

Conflicts:
	src/pymor/algorithms/timestepping.py
[travis] use created xvfb device for tests
[tests] fixes MonomOperator after recent VectorSpace introduction