Implement hollow can as simple cylindrical sample.

Refs #9842
Improve performance of Sphere::side

Remove temporary V3D constructions.
Refs #9842
Cache pointers to SampleEnvironment children

Avoids constant dynamic casting when checking against points & rays.
Refs #9842
Performance improvements in MonteCarloAbsorption

Avoid constructing unnecessary V3Ds and exit early if a point is found
to be in a block rather than checking everyting.
Refs #9842
Add a type to combine a geometric Object & a Material

It defines a shape that is composed of a given material
Refs #9842
Use the SolidSample object in the Sample class.

Refs #9842
Simplify SampleEnvironment to only care about shape

This is more consistent with how the Sample shape itself is treated, i.e.
it is separated from the location that is defined by the instrument.
This should allow much quicker intersection tests when checking for point
intersections in Monte Carlo-type algorithms.
Refs #9842
Store a reference to the intersected object in a Track link

This should avoid having to go through the object component to get access
to the shape when testing for intersections.
Refs #9842
Check Mont Carlo changes.

Refs #9842