update the FFT implementation

 - add scaling by nfft in IFFT
 - add temp buffer to protect the source data
 - change the interface for passing temp buffer
 - add intrinsic version of FFT
 - indent the code

Change-Id: I35f46e60bb88070127eb59281ddbd3a72f6b8e7d