New interpolate() method.

New `interpolate()` method for `Stream` and `Trace` objects. No filtering or other processing is performed so users really need to know what they are doing but it is useful for some use cases.

The default interpolation method uses an weighted average slopes scheme which is the same `SAC` uses. This is fairly well justified as this method guarantees that there will be no additional extrema in the interpolated waveform. This is in contrast to normal spline interpolation which this method also supports. All new samples will be contained in the old time range - no extrapolation is performed.

### Usage

```python
# Interpolate all traces to a new sampling rate.
st.interpolate(sampling_rate=2.0)

# One can also set a new starttime.
tr.interpolate(sampling_rate=2.0, starttime=tr.stats.starttime + 10)

# Or the number of samples
tr.interpolate(sampling_rate=2.0, npts=200)

# Different methods are supported. The weighted average slope method is
# the one used by sac and is the default.
st.interpolate(sampling_rate=2.0, method="weighted_average_slopes")
st.interpolate(sampling_rate=2.0, method="linear")
st.interpolate(sampling_rate=2.0, method="nearest")
st.interpolate(sampling_rate=2.0, method="zero")
st.interpolate(sampling_rate=2.0, method="slinear")
st.interpolate(sampling_rate=2.0, method="quadratic")
st.interpolate(sampling_rate=2.0, method="cubic")
```


Hmm...no...I think this is all correct. It would also quickly go haywire if something in the scheme was wrong.

`i_0` and `i_1` are the indices to the left and right of the value to be interpolated in the original data array. `i` is the distance of the value to be interpolated from the start of the old array in sample intervals `h`. Line 35 is essentially just a floor operation so `i` and `i_0` are generally not identical. The tests in line 39 and 43 are for points exactly on the old sample points - in that case no interpolation is needed. `idx` is the index of the newly interpolated values.

The casts in the conditionals are strictly speaking not necessary as they would be performed in any case but I prefer to write them out to be clear whats going on.

Oh god...thanks a lot for all the spelling corrections! Gotta be more careful... I'll fix them tomorrow!