Make sure we can change the precision at will.
Use a faster precision type.
Merge branch 'feature/illumination' into develop
Merge branch 'develop' of github.com:KayEss/AnimRay into develop
Sphere needs to be told what the intersection return type is going to be.
Rename method to `intersects`.
Rename co-ordinate type.
Skeleton for more sophisticated intersection tracking.
Skeleton for surface.
Merge branch 'develop' into feature/surface

Conflicts:
	animray/Cpp/animray/animray.cpp
Remove the subclassing used in `movable`.
Don't set a default value for the epsilon test on intersection anywhere.
Move the basic shader calculation into a separate function.
Start to add some description of the components of the ray tracer.
Merge branch 'feature/surface' of github.com:KayEss/AnimRay into feature/surface

Conflicts:
	animray/Cpp/animray/animray.cpp
	animray/Cpp/include/animray/compound.hpp
	animray/Cpp/include/animray/movable.hpp
	animray/Cpp/include/animray/scene.hpp
	animray/Cpp/include/animray/shader.hpp
Fix bugs bringing in the new surface class.
Start to add in redirection for surface physics calculation code.
Start to put in the intersection model needed to handle surface physics.
C++ is not able to deduce the template parameters so a new strategy is needed here.
Matte surfaces work with RGB colours.