Updates for v0.2.2

 - Clean up the MPI initialisation code.
 - Make device selection for CUDA and OpenCL more flexible.
 - Work around an issue in Python 2.7 that limits the precision of constants inside of templates.
 - Incorporate support for repartitioning meshes and solutions.
 - Improve the performance of the Gmsh reader.
 - Reduce startup time.
 - Tweak how matrices are multiplied when using clBLAS.