1. Merge Polygon and SurfaceMesh into one directory: Boundary_Meshes
2. rename SurfaceMeshInternal::Group to SurfaceMeshInternal::FaceGroup
3. add BoundaryMeshInternal::EdgeGroup to represent a group of edges for
   3d SurfaceMesh and 2d Polygon
4. Change Edge<Scalar> to Edge<Scalar,Dim> so that it can also represent
   edges of 3d SurfaceMesh
5. Modify involved code to pass compilation