Basic structure of ODESolve
===========================

One general rule is never to convert a linear ODE into a nonlinear
ONE!

Classification strategy:

1. LINEAR (return either basis or linear combination)
   (a) first order - integrating factor       - module odelin
   (b) higher order:-
       (i) n-th order (trivial)               - special case of (ii)
       (ii) constant coeffs                   - module odelin
       (iii) polynomial coeffs:-
           factorizable (algebraically)       - handled by making monic
           Euler & shifted Euler              - module odelin
           dependent variable missing         - module odelin
           exact                              - module odelin
           variation of parameters (for P.I.) - module odelin
           special functions (e.g. Bessel)    - module odelin
           polynomial solutions               - ???
           adjoint                            - ???
           operational calculus               - ???
           order reduction                    - ???
           factorizable (operator)            - ???
           Lie symmetry                       - ???

2. NONLINEAR
   main module odenonln(?)
   (a) first order:-
       Prelle-Singer                          - TO DO
       Bernoulli                              - done
       Clairaut                               - done
       contact                                - ???
       exact                                  - done
       homogeneous                            - done
       Lagrange                               - done
       Riccati                                - done
       Solvable for x/y                       - done
       Separable                              - done

   (b) higher order:-
       dependent variable missing             - done
       factorizable (algebraically)           - done
       factorizable (operator)                - trivial version done
       autonomous                             - done
       differentiation                        - done
       equidimensional                        - done
       exact                                  - done
       scale invariant                        - done
       contact                                - ???
       Lie symmetry                           - ???

   (c) any order
       interchange variables                  - done
       (undetermined coefficients ?)          - ???

A potential problem with this strategy is that one cannot easily pass
back an unsolved ode through the interchange chain.  Using more
symbolic mode might solve this.  For the time being, unsolved odes are
not passed back at all, but does this lose partial solutions?  THIS
NEEDS CHECKING MORE CAREFULLY!
