Merge pull request #111 from atgeirr/dg-improvements

Further improvements to limiters for DG time-of-flight computations
Do not assume that the first basis function is the constant 1.

Properly integrate b_i * porosity over the cell for all basis functions b_i.
Added (disabled) extra output for debugging purposes.

Enable by defining EXTRA_VERBOSE.
Do not require unnecessary high quadrature precision.
Renamed class DGBasis -> DGBasisBoundedTotalDegree.
Reduce source sum failure from error to warning.

Should extend to sum over sources and boundaries before reinstating.
Added class DGBasisMultilin.

Multilinear DG1 basis functions added. Will not work with current limiter.
Added addConstant() and multiplyGradient() methods.

So far only to class DGBasisBoundedTotalDegree.
Implement limiters with addConstant() and multiplyGradient().

This is instead of directly manipulating the coefficients, requiring
assumptions on the basis used.
Add methods addConstant() and multiplyGradient() to multilinear basis.

Not tested yet, though.
Moved DG basis to separate classes in its own file.

Also introduced interface (base) class and changed the api, not used yet by the tof solver.
Increased quadrature order in a term.

This is for the benefit of bi/tri-linear basis functions, as stated
in the comments.
Implement (empty) virtual destructor, make methods public.
Complete separation of basis func classes.

Also:
 - Add use_tensorial_basis parameter allowing run-time choice of basis.
 - Remove degree argument from solveTof() method, degree is instead obtained
   from parameters in constructors. Modified compute_tof* programs to match.
Merge pull request #116 from atgeirr/master

More DG time-of-flight improvements.
Added test for DG basis classes.

Only 2d so far.