Method chaining for Stream and Trace objects.

I implemented method chaining for all `Stream` and `Trace` methods where it makes sense. It has no implications on performance and should not break any existing code. The only downside I see are slightly convoluted interactive sessions as the objects are printed after every command. On the other hand interactive sessions gain the most from method chaining making it very fast to try different things, e.g.: 

```python
>>> st = read()
>>> st.copy().filter("lowpass", freq=2.0).taper().plot()
>>> st.copy().filter("lowpass", freq=4.0).taper().plot()
```
Any thoughts? Should be ready to merge from a technical point of view.