RadialProfile class to make persisted bases available in C++

Also updated tests and visualization code in tractor.py to
make use of the new class.
Merge branch 'u/jbosch/DM-1225'
Various classes in an anonymous namespace were being instantiated
in the wrong namespace. They don't need to be explicitly instantiated at all.
Fix compiler warning: multiple unsequenced modifications
Looser tolerances in MatrixBuilder tests

Apparently the random numbers coming out of NumPy on MacOS/Anaconda are different from what Jim sees with Ubuntu's apt NumPy, and we need lower
tolerances to support both.
Looser default tolerances in shapelet comparison test utility functions

Apparently the random numbers coming out of NumPy on MacOS/Anaconda are different from what Jim sees with Ubuntu's apt NumPy, and we need lower
tolerances to support both.
Add function to infer shapelet order from number of coefficients
Pass coefficient array to ShapeletFunctor ctor as const

This should always have been a const array, as we copy it and hence never modify
the original.
Add FunctorKey for ShapeletFunction
Add FunctorKey for MultiShapeletFunction
Throw when we try to create a MultiShapeletFunctionKey to a nonexistent field.
Merge branch 'u/jbosch/DM-1224'
Respond to review by removing unwanted semicolon and line continuation
Merge branch 'tickets/DM-1302'
Need to #include, %import afw::table in example Swig build.
Add absolute tolerances in shapelet comparison functions.
Merge branch 'u/jbosch/DM-1305'
Check for floating point problems in ellipses passed to MatrixBuilder