First stage of work on mixed BCs (does not compile yet).
Added the ensureNotNull() function.
Added the DomainIndex class.
Removed irrelevant comment.
Overloaded multiplication operator for BlockedBoundaryOperator.
Modified the grid module so that entities are now endowed with domain index.
Added a GridSegment class.
Some Space classes can now be defined on grid segments.
Space now throws an exception if supplied with a null Grid pointer.
Added tests for spaces defined on segments.
Added the cube-domains.msh mesh for testing.
Extracted some duplicate code to a new class SpaceHelper.
Segments are now supported by polynomial spaces.
Removed spurious comments.
Extended the test suite for spaces.
Use of segments is now possible in Python.
Added an example showing how to use grid segments.
Solver doesn't care any more about the dual spaces of grid functions
(since they are not fixed any more, but can be specified arbitrarily
when calculating projections).
Moved a comment to opencl_handler.hpp.
Discontinuous spaces can now be forced to include only functions
with supports lying only on elements belonging to a segment.