fem 3d ply reader, update documentation

- Mention that the stored fem shared_ptr is maintained until the next
time PlyReader::parseFile is called on the registered PlyReader.
ply reader update, add begin and end parseFile callbacks

- Callbacks enable extra initialization at the beginning and end of the
parseFile function.
- Use begin and end callbacks in fem 3d ply reader to have more robust
initialization.
fem 3d ply reader, make boundary conditions optional

- Boundary conditions should not be required in fem3d, so this update
makes them optional.
PlyReader and fem3d delegate, minor changes

- Whitespace fix in PlyReader
- Remove unused header
- Fix incorrect parameter name
- Remove nullptr constructor in initializer list for shared_ptr.
fem3d ply reader, replace tetrahedron with polyhedron

- In order to be more flexible for future development, we replace the
name tetrahedron with the name polyhedron.  This will enable cubes as
well.
- In the PLY reader delegate, we replace the explicit property
declarations with a list of vertices, and we throw an error if the user
provides anything except for 4 vertices because it hasn't been
implemented yet.