[MRG] New LDA class with shrinkage

OK, here is a new version of the LDA class with (optional) shrinkage. The one in #3105 was already very messy, so I thought I'd start from scratch. By default, nothing has changed and the old SVD-based code is used.

When using the shrinkage approach based on Ledoit Wolf shrinkage, it is important that the data are standardized (centered and scaled to unit standard deviation). Therefore, this really works only once #3521 gets merged too.

Concerning #3500, I have not implemented this yet to avoid adding multiple features in one PR.
- `LDA()` uses the old implementation (default)
- `LDA(use_covariance='empirical')` gives similar results as the old implementation (but numerically different)
- `LDA(use_covariance='ledoitwolf')` applies shrinkage, which is of course different.

The default behavior is to use the old implementation so we do not break existing code. However, I don't think it is possible to get numerically exactly the same results with SVD and covariance estimation. Is this a problem?