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")
```


You are correct about `i` and `i_0`; I had misinterpreted what was going on. But I'm still not sure how `i` would ever equal `i_1?

```
$ cat test.c 
#include <stdio.h>
int main(void) {
	double i;
	int i_0, i_1;

	printf("Enter number: ");
	scanf("%lf", &i);

	printf("Using i=%30.20f\n", i);
	i_0 = (int)i;
	i_1 = i_0 + 1;

	printf("i_0=%d, i_1=%d\n", i_0, i_1);
	printf("i==i_0 -> %s\n", (i == (double)i_0) ? "true" : "false");
	printf("i==i_1 -> %s\n", (i == (double)i_1) ? "true" : "false");

	return 0;
}
$ ./test 
Enter number: 1.9999999999999998
Using i=        1.99999999999999977796
i_0=1, i_1=2
i==i_0 -> false
i==i_1 -> false
$ ./test 
Enter number: 1.9999999999999999
Using i=        2.00000000000000000000
i_0=2, i_1=3
i==i_0 -> true
i==i_1 -> false
```

That first test is the closest I could get to 2, and `i` is still not equal to `i_1`...