Add more referencing options

This adds a base function `apply_reference` that can apply various
different referencing schemes. Two convenience functions are also
added that provide a convenient interface to the base function:

 - `set_eeg_reference`: apply a simple reference to all EEG channels
 - `set_bipolar_reference`: apply a bipolar reference (or more)

A helper function `_parse_channel_list` is also added to help functions
be more flexible in how they allow channels to be specified.
There are many types of possible EEG referencing schemes. It was decided to have convenience functions for some schemes we support (plain and simple EEG reference, and bipolar referencing).

We also include a general purpose function to aid the user if some other referencing scheme is desired. For example, a laplacian reference is also a (maybe not so commonly used) scheme, which we don't explicitly support. With the general function, the user can still pretty conveniently apply such a referencing scheme.