Add mechanism to do analytical/custom integral

``integrate1d`` now use ``integrate(self, tuple bound, int nint_subdiv, m, c , ...)`` to do integral if available.