This function is just syntax since the only thing it does is calling
to integrate which has to exist for the type returned by the
function. So theres one redundant call but there should not be any extra
cost... up to the compiler. It can not be templated all the way since
the integration entries functions can not be templates.
Most times integrands will return a scalar or vector but could be a
matrix too. Also vectors might be returned as vector or Disposable
wrapped (which is preferred and I have removed the plain vector
version).
Integrates a vector or scalar function of vector domain.
A template recursion along dimensions avoids calling depth test or virtual functions.
Add coherence test between the integrand function dimensions (the vector size) and the declared dimension in the constructor.
Split into integrator classes for functions returning scalar and vector?