Introduce refined grid in the form of an Octree grid.

This commit also introduces a new abstract base class Grid from which both StructuredGrid and OctreeGrid inherit. Also introduce new abstract base class Geometry from which all the geometry primitives inherit.
Fix compilation for gcc versions < 4.7.
Fix bug in creation of neighbour distances of StructuredGrid.
Fix bug in creation of neighbour distances of StructuredGrid.
Fix diffusive jump rate calculation for grids other than StructuredGrid. Also fix face rectangle lookup for OctreeGrid.
Expose new Grid, StructuredGrid and OctreeGrid interface, with NextSubvolumeMethod to python. Introduce method to get concentrations from an OctreeGrid.
Add set_position method to BindingReaction
Remove listing of interface compartment indices in NextSubvolumeMethod::set_interface
Fix crash where we did not implement the is_in check correctly for Octree. Add debugging assertions.
Fix compilation error in OctreeGrid.h
Merge branch 'octreegrid'
Merge branch 'master' of github.com:tycheSSA/Tyche