Updates to support 3D geo file format
This MR adds more functionality to the NekMesh .geo reader:
- A better parser based on boost::spirit has been implemented, allowing for more robust parsing;
- 3D geo entities have been added, including transfinite surfaces as implemented in Gmsh's built-in CAD kernel;
- Support for geometries that contain voids.