'beam'->'1DElement', 'face'->'2DElement', 'polyhedron'->'3DElement'
Refactor Fem3DRepresentationPlyReaderDelegate, abstract common parts.
Implement PlyReaderDelegate for Fem2DRepresentation
Implement PlyReaderDelegate for Fem1DRepresentation
Move load file feature into base class FemRepresentation
Implement load file feature on Fem2DRepresentation
Implement load file feature on Fem1DRepresentation
Use 'EXPECT_DOUBLE_EQ' for double type comparison
Documentation and variable name revision
Revise FemRepresentation::loadFile()
Keep 'face' for graphical part in ply file

Use lower case and underscore to separate names:
'1DElement' -> '1d_element'
'2DElement' -> '2d_element'
'3DElement' -> '3d_element'
Refactor part of registerDelegate into base class
Remove 'doLoadFile()', derived classes will return its delegate

Instead of passing the PlyReader to derived classes,
FemRepresentation::loadFile() will now ask its derived class to give
back the corresponding PlyReaderDelegate, and register this delegate and
do the load work.
Serialize Fem1D/2DRepresentation, add UnitTest
Move more common code into base FemRepresentationPlyReaderDelegate

1. In Fem1/2D.ply, change the second 'radius' to 'value'.

2. New 'getElementName()' to return type of element (1/2/3D) being
   processed by each delegate.

3. Abstract 'fileIsAcceptable()' into FemRepresentationPlyReaderDelegate

4. Move registration of element processing into
   FemRepresentationPlyReaderDelegate

5. Update documentation

6. Only leave constructors of delegates as public API, other methods
   become 'protected'.
Add 'parseWithDelegate()' method in PlyReader
Use 'shared_from_this()' in Fem1/2/3DRepresentation::getDelegate()
Revise log message in TriangleMeshPlyReaderDelegate
Initialize member data and add post process methods

1. Initialize m_radius in Fem1DRepresentationPlyReaderDelegate, add
   method 'endRadius()' to verify that data is read into m_radius.

2. Initialize m_thickness in Fem2DRepresentationPlyReaderDelegate, add
   method 'endThickness()' to verify that data is read into m_thickness.

3. Initialize m_boundaryConditionData to NaN.
Add support for Fem3DElementCube in Fem3DRepresentationPlyReaderDelegate