[OneDGrid] Switch vertices to AxisAlignedCubeGeometry

We really don't need a reimplementation of a vertex geometry...
Also, don't store the trivial geometry implementation.
[OneDGrid] Clean up intersection implementation

- Follow the interface change to return temporaries instead of
  references from the ...Normal() methods. This avoids having to
  allocate storage for the normals inside the intersection. Also avoid
  an unnecessary branch when calculating the value of the normal.

- All of the geometries are now AxisAlignedCubeGeometry
  instances. Adjust the constructor calls accordingly.

- Get rid of the stored geometry implementations and just create them on
  the fly.

Net result: Massive size reduction of the intersection objects and
improved code readability - no more mutable variables!
[OneDGrid] Return entity by const reference from EntityPointer
[OneDGrid] Get rid of MakeableInterfaceObject

There's no point in wrapping entities and intersections in a
MakeableInterfaceObject anymore, so let's get rid of that idiosyncrasy.
[Interface] Use equals() method for comparing entities and intersections

In the initial version of the new interface, I forwarded the comparison
operators of the facades to the corresponding comparison operators of
the implementations. This patch instead calls the method equals() for
several reasons:

- Consistency. Most other facade classes use equals().
- Less implementation effort - one method instead of two.
- In some cases, the compiler will autogenerate a comparison operator
  that most likely will not work as expected.
[YaspGrid] Fix entity and intersection comparisons

This patch adds equals() methods to the entity and intersection
implementations of YaspGrid and changes various call sites to use those
instead of the comparison operators.

This patch is required due to the recent change in the facade classes.
[OneDGrid] Fix entity comparisons

This patch adds an equals() method to the OneDGrid entities and avoids
reimplementing custom comparison logic in the EntityPointer.
[SGrid] Make entities comparable by adding equals() method
[AlbertaGrid] Add equals() method to intersections

This patch adds equals() methods to intersections to make them
comparable via the facades.

Entities already have an equals() method.
[GeometryGrid] Add equals() methods to entities and intersections

This patch adds equals() methods to entities and intersections to allow
comparisons via the facade classes.

They are mostly just ported over from EntityPointer and
IntersectionIterator, with an additional check for pointer validity.

The comparison semantics in the case of synthesized entities aren't
entirely clear to me; I have opted for first checking the subEntity
member (as done by the EntityPointer) and then checking whether both
pointers to the host entities are valid. If they are not, two entities
compare equal iff both pointers are invalid. Otherwise, we can proceed
with the comparison as copied over from the EntityPointer.
[IdentityGrid] Add equals() methods to entities and intersections

This patch adds equals() methods to entities and intersections to make
them comparable via the facades.
[UG] Add equals() methods to entities

This patch adds equals() methods to entities to make them comparable via
the facades.

Intersections already have an equals() method.
[Gridcheck] Check entity and intersection comparability

The gridcheck currently does not make sure that we can compare entities
and intersections, so I added some tests for that.

I also added additional comparison checks for the iterators which do not
just instantiate the comparison operators, but which also check for
consistent results.
Merge branch 'feature/onedgrid-copyable-entity-performance'

This branch fixes a number of performance issues that I stumbled over
when checking OneDGrid for possible problems w.r.t. copyable entities.
It is mostly about getting rid of the custom vertex geometry
implementation and most of the extra data stored in the intersections.

* feature/onedgrid-copyable-entity-performance:
  [OneDGrid] Get rid of MakeableInterfaceObject
  [OneDGrid] Return entity by const reference from EntityPointer
  [OneDGrid] Clean up intersection implementation
  [OneDGrid] Switch vertices to AxisAlignedCubeGeometry
Merge branch 'feature/fix-entity-and-intersection-comparisons'

This branch changes the entity and intersection facades to perform
comparisons using an equals() method on the implementation classes
and adds the corresponding methods to all grid implementations.

Most implementations already had the methods for at least one of the
objects; the missing ones were implemented by adapting the existing
equals() methods of EntityPointer and IntersectionIterator.

* feature/fix-entity-and-intersection-comparisons:
  [Gridcheck] Check entity and intersection comparability
  [UG] Add equals() methods to entities
  [IdentityGrid] Add equals() methods to entities and intersections
  [GeometryGrid] Add equals() methods to entities and intersections
  [AlbertaGrid] Add equals() method to intersections
  [SGrid] Make entities comparable by adding equals() method
  [OneDGrid] Fix entity comparisons
  [YaspGrid] Fix entity and intersection comparisons
  [Interface] Use equals() method for comparing entities and
  intersections
[Gridcheck][Bugfix] Always capture GridViews by value