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...
I don't know about the `np.interp` method but I had some issues with scipy's interpolation methods for large input arrays; some of them require a ridiculous amount of memory. Might be worth to check how the numpy interpolation method behaves. Some notes can be found here: https://github.com/obspy/obspy/blob/master/obspy/signal/interpolation.py#L86-96