Add data clean-up postprocesses to Signal

Summary

Add data clean-up postprocesses to Signal object.

Current behaviour/setbacks

We have post-processes that can function well as fundamental data clean-up processes. For example, these include smoothing/filtering (Savitzky-Golay), detrending, normalising data (scikit-learn's Standard Scaler). Users can invoke these after obtaining post-processed data, but they have to do so manually.

Desired behaviour/advantages

As we anticipate that these clean-up processes are broadly desired before further analysis, the Signal object can include these additional processes.

Implementation sketch

Within agora/io/signal.py, the Signal object contains an apply_prepost() method (line 62). Currently, it only applies the picker and merger processes by default; additional post-processes (e.g. savgol, detrend, standardscaler) can be added there.