Implemented seperate PointCloud2D/3D classes as discussed previously.
Fixed compilation errors resulting from this change - more searching
needs to be done to remove unnecessary generic <?> instances of
PointClouds, especially inside the visitor classes.