[MRG] Incremental PCA

An implementation of Incremental PCA. See [Incremental Learning for Visual Tracking, J. Lim, D. Ross, R. Lin, M. Yang, 2004](http://www.cs.toronto.edu/~dross/ivt/LimRossLinYang_nips04.pdf) for more details.

The key idea behind this PR is to have an out-of-core PCA that gives roughly equivalent results while using constant memory (on the order of the ```batch_size``` rather than ```n_samples```).
In the original `sklearn.decomposition.PCA`, `fit_transform` is implemented separately and the test there is to assure that `.fit_transform(X) == .fit(X).transform(X)`. Here, in `IncrementalPCA`, `fit_transform` is handled by the `TransformerMixin` of `_BasePCA`, so by definition it does exactly what `.fit(X).transform(X)` does. So as @arjoly is saying, this assertion seems redundant for iPCA.