WIP: Pre-planned transforms
The idea here is that the general_ functions now take a planner<T> object with a get_plan member function instead of just using a global function. This allows the cache to be replaced with a pre-planned transform; a vector of the exact plans needed. This keeps the complexity outside of the general_ functions themselves.
This is just a quick prototype but I'd appreciate feedback on the general concept. Is there any interest in this?