added base class for AJD and an example of a derived class header

A base class for the Approximate Joint Diagonalization (AJD) Algorithms. AJD is itself a mathematical process so I think it belongs in shogun/mathematics/ajd (I made a folder because there will be a few techniques and I thought this would keep everything neat and tidy), the ICA and BSS methods that will make use of these AJD techniques will live else where (most likely shogun/converters).

This interface allows for creating an instance of an AJD algorithm or using polymorphism and the base class. The work flow for this would look like:
CApproxJointDiagonalizer *d = new JADiag();
d->compute(...)
SGMatrix<float64_t> V = d->V();
// or simply
SGMatrix<float64_t> V = d->compute(...)

but it also allows a one liner like this:
SGMatrix<float64_t> V = JADiag::diagonalize(...);

I came up with this design after a bit of thought but I would like to hear what other people think! 

If everyone thinks its okay I will add the implementation files and the other algorithms along with unit tests!