Fast fourier transform

Adds an implementation of http://rosettacode.org/wiki/Fast_Fourier_transform.
I was thinking that there should be a way to do this with iterators and avoid allocation (like having an EvenIterator with only the even indices and an OddIterator with only the odd indices).
I gave a quick try to creating the iterator, but I'm not sure it is worth the hassle: http://is.gd/ZEczef

Using this would need to change `fn fft`'s signature from `fn fft(arr: &[Complex<f32>]) -> Vec<Complex<f32>>` to  `fn fft<T:Iterator<Complex<f32>>>(arr: &T) -> Vec<Complex<f32>>` taking `&[Complex<f32>]` 

I would be inclined to merge this as is and maybe I could try to modify it later, to see how far I can get, but I mentioned it in case you wished to give it a try now