Add preliminary support for mesh partitioning.

Currently backends exist for both METIS and SCOTCH.  Using
pyfr-mesh partition it is possible to repartition both meshes and
associated solutions.
Enhance the partitioning interface.
Ensure connectivity array strings are four characters long.
Remove partition support from the Gmsh reader.

This permits us to make a range of optimisations and
simplifications to the code.
Improve how we search for and load dynamic libraries.
Incorporate partitioning into to the documentation.
Whitespace fixes.
Fix a typo in the user guide introduced in the previous commit.
Fix a bug in how element offsets are calculated for mixed meshes.
Merge branch 'feature/partitioning' into develop.