refs #9257. Add test case for failure.
refs #9257. Add composite cluster.

A composite cluster will fix the problem I've been having. Namely that the clusters are processed in parallel to get the uniform min, but the order that they are processed in will affect the end labeling. If clusters are set up as composites before hand. This will not be a problem.
refs #9257. Add ClusterRegister>
refs #9257. Use ClusterRegister. Tests pass.
refs #9257. Trying to fix a bug with merge on ClusterRegister

The problem does not get picked up in the unit tests, and only occurs with
a real dataset to work on. The problem is that we get a overloaded stack
due to some clusters becoming their own children. When the getLabel is
then called on the compositecluster, it results in an overloaded stack. I
think this could be fixed by changing the logic and working of the merge
method to use a member vector<set<label_id> > to track each cluster group
for the incomplete clusters, and only generating the composites (which
would only ever by one level deep) at the end of the process.
refs #9257. Working clusterregister.

ClusterRegister fixed. Test cases work (unit) as well as the test scripts
that I have marked as broken previously.
refs #9257. Tidy up and add memory check.
refs #9257. Fix RHEL6 errors and warnings.

Add better documentation.
refs #9267. Fix merge conflict.

Merge branch 'feature/9257_ccl_performance_cppcheck_temp' into feature/9257_ccl_performance

Conflicts:
	Code/Mantid/Framework/Crystal/src/ConnectedComponentLabeling.cpp
Merge branch 'feature/9257_ccl_performance' into develop