Octree container rework

This is an extension of @taketwo 's Pull Request #471.
In addition to the changes discussed in that request, it:
* Removes the `octree_pointcloud_adjacency_container.h` as a separate file and merges it into `octree_container.h`
* Adds `octree_leaf_data.h` and `octree_leaf_data.hpp` which contain @taketwo 's new `AveragePoint` container and `accumulator` helper structures.
* Renames `OctreePointCloudAdjacencyContainer` to `OctreeAdjacencyContainer` to follow the convention of the other containers
* Removes point counting from `OctreeAdjacencyContainer` - this is now internal to the data stored within the leaf container.
* Updates `SupervoxelClustering` class to use the new OctreeAdjacencyContainer

A further extension of this pull request should update the rest of the containers (most importantly `OctreePointCloudVoxelCentroid` ) to use this new leaf data container functionality.

A further commit should update `SupervoxelClustering` to use @taketwo 's accumulators internally rather than the explicit instantiations it currently uses inside of its VoxelData.