Description of most-relevant changes in the cgal_branch.

Merge Proposal 1:

Summary of changes:
- Intersection detection for mesh-point (1d-3d) and mesh-mesh intersection (2d-1d, 2d-2d, 3d-2d,3d-3d)
  (computing all cell ids for one mesh, now *uniquely* collected in a std:set)
- Computing first intersected cell for mesh-point intersection, accelerates significantly function 
  eval 

ADDED:
- IntersectionOperator class: Provides the interface for the new intersection
  functionality based on the CGAL library (computational geometry).
  Implementation via the pImpl idiom.

- IntersectionOperatorImplementation class: Abstract base class for the pImpl
  implementation. Only inherited classes contain the search tree, which type
  depends is based on the geometric primitive it includes.

- IntersectionOperatorImplementation_d class: Contains search tree for the mesh
  and executes search operations.

- MeshPrimitive class: Implementation of the concept "AABBPrimitive" required by the
  CGAL AABB tree. Relies on the PrimitiveTraits class to perform data
  conversion,

- PrimitiveTraits template class: Traits class which provides conversion
  functionality from MeshEntity (s.a.  IntervalCell, TetrahedronCell etc.) -->
  CGAL geometric primitive (Segment_3, Tetrahedron_3). 

- demo/mesh/intersection/python/demo_3d.py demonstrates intersection of 3D cube
  with 3D sphere running through the cube.

- bench/mesh/intersection/main.cpp Benchmark against old GTS interface.

- added intersection functionality to complement CGAL interface
  (Point_3_*_intersection.h) and add new intersection detection (Tetrahedron -
  Tetrahedron) and a template specialization for the Triangle
  Tetrahedron do_intersect function to overwrite its CGAL default implementation
  (fix CGAL roundoffs exceptions due inexact geometry kernel).

CHANGED:
- MeshEntity class: Introduced default constructor (requires to change private
  member const Mesh & _mesh to const Mesh * _mesh), changed _mesh. to _mesh-> in
  (derived) classes when necessary. 
- added comparison operator

- MeshEntityInterator class: Introduced default constructor, added comparison
  operator, added set_end function to create iterators which points past the end
  (more STL like, necessary for the AABB tree).

- Mesh class: Provide appropriate delegate funtions.

- Function class: Replace gts bases intersection detector.

- swig: Added wrapper for std::set<uint> and a has_cgal function.

Merge Proposal 2:

ADDED:
- PrimitiveIntersector class: Provides statics function to detect intersection
  between rather arbitrary mesh entities.
- cgal_includes to include relevant cgal headers and definition at one place,
  needed for inclusion at different places.
- Triangle_3_Tetrahedron_3_do_intersect_SCK.cpp: Moves full template function
  specialization to cpp file.

CHANGED:
- MeshEntityIterator: Got an operator[] to facilitate random access to
  meshentities if e.g. some indices are external saved.
- Mesh class: Added intersection detection when intersection a mesh with (list
  of) entitie(s).
- IntersectionOperator class: Added intersection detection when intersection a mesh with (list
  of) entitie(s).
- Intersection tests to supplement CGAL test throw exception if not fully
  implemented. 

Merge Proposal 3

ADDED:
-PrimitiveIntersector class:  computing intersection between arbitrary mesh
entities and entities and points
- Added python and C++ demo for entity intersection.
- Added C++ demo for distance queries.

CHANGED:
- Mesh, IntersectionOperator, IntersectionOperatorImplementation,
  IntersectionOperatorImplementation_d: Added interface for computing distance
  queries.
- Improved demo files for 2D mesh intersection.

AVOIDED:
Introducing nasty debugging macros to keep other people busy with making the
buildbot green again :)
