1. - Changed counters for computing binary sub-trees (for OpenMP + MPI)
2. - Fleshed out some MPI control routines
Added new test to userguide
Added helper function in DomainBox to figure out if any boundary is "special"
Renamed SerenError to GandalfError and instructed ExceptionHandler for MPI
Made Ghosts an abstract class, created children classes and modified the code accordingly
Created particle MPI datatype
Added check that MPI and OpenMP can work together for hybrid parallelization
Merge branch 'mpi' of github.com:gandalfcode/gandalf into mpi

Conflicts:
	src/MpiControl.cpp
	src/gandalf.cpp
Partial implementation of initial domain decomposition
Merge branch 'mpi' of https://github.com/gandalfcode/gandalf into mpi
1. - Binary trees use domain box to compute sub-tree domains (needed for MPI decomposition)
2. - Added more to MpiControl composition
Local merge
Binary tree now makes local copies of active particles in hydro and gravity loops
Replaced OpenMP atomics to locks; corrected Nmpi to be 1 at the beginning in SImulationBase; corrected MPI headers to be included only when needed
Minor fixes for timesteps
Merged conflict in BinaryTree.cpp
Merged conflict in MpiControl
Merged conflict in Makefile
1. - Fixed inconsistency between grid and binary tree with multiple timesteps
1. - Fixed sphint pointer when accreting dead particles
2. - Fixed some diagnostic problems with sink accretion