[MRG+1] 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```).
Right. The number of features has to stay constant and the featurewise cost is SVD dependent... I am looking at a future PR to add the ability to use randomized SVD in the case where desired n_components <<< n_features, which is pretty much exactly the case for documents IIRC! Basically a solver = 'random' parameter that changes the central SVD. @ogrisel wanted this and it is a relly good idea :)