Updating GmshIO

* Minor formatting, coding guidelines changes.
* Use std::string and std::getline to read file.
* Properly handle EOF and bad stream states when reading file.
* Avoid repeatedly declaring new variables for reading in node ids.
* Moving member functions out of header.
* Add documentation.
* Print a warning if there are unparsed tags for an element.
* If we read nnodes, make sure it matches eletype.nnodes.
* Check that we found a recognized element type.
* Catch the Elem pointer that add_elem() throws back to us.
* Verify that the libmesh Elem we build has the same number of
  nodes as the Gmsh file expects it to.
Make GmshIO handle mixed-dimension meshes

* Update GmshIO::read() documentation.
* Now adding all elements to the Mesh, regardless of dimension, and
  removing lower-dimensional elements later.
* Add error check for dimension mismatches greater than 1.
* Set mesh_dimension based on the largest element dimension seen.
Merge pull request #234 from libMesh/gmsh

Gmsh