[New Feature] Fastfood

Implementation of the Fastfood algorithm by @felixmaximilian and @esc
 
We have been working on this code for quite some time now and we think that it is mostly ready for some public review. There may still be a few wrinkles to iron out but in general the code is in decent shape.

For details of the algorithm, see the documentation at:

https://github.com/esc/scikit-learn/blob/fastfood/sklearn/kernel_approximation.py#L503

Also check out the example usage:

https://github.com/esc/scikit-learn/blob/fastfood/examples/kernel_approximation/plot_digits_classification_fastfood.py

And the performance evaluation at:

https://github.com/esc/scikit-learn/blob/fastfood/examples/kernel_approximation/rks_vs_fastfood.py

To minimize dependencies we included an cython in-place implementation of the Fast Hadamard Transform:

https://github.com/esc/scikit-learn/blob/fastfood/sklearn/utils/cyfht.pyx

For ease of merging, the branch has been rebased against current master at the time of writing, prior to the pull-request.
If the speed difference is minor, memoryviews might still be better because you can release the GIL. (Kind of surprised that it's slower, though.)