Added the ability to interpolate in the frequency domain to Trace.resample(). Should fix issue #857

Ok, so now here's the promised pull request. The new code uses the numpy.interp() function to interpolate the spectra in the frequency domain. I guess that's roughly what you were suggesting, Lion, right?

A few (in fact two) more thoughts:
1) I'm not sure to what extent the strict_length option makes sense. The endtime of a trace may also change if len(self.data) % factor == 0.0 holds, since the endtime is calculated based on (npts - 1)*delta. 
2) I've seen that in the current master branch there's a new signal.interpolation module, which also contains a weighted_average_slopes() function, of which I'm assuming that it does something similar to SAC's "interpolate" command. Maybe this would in general be the better solution for resample(), since this windowing + filtering business seems a little messy to me. On the other hand the "weighted average slopes" method might be messy too, so not sure...
Hmm true, that would be an option, too. Unfortunately dealing with this weird output array gets a bit ugly in any case. In my current attempt, I just treat the real and imaginary parts separately, respectively, which is not so much of a problem, since they are being interpolated separately anyway.

Btw. I guess an np.float32 can occur independent of system architecture, I have a sac file here, which is read in by read() as float32. Probably because its only single precision.