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.
The flag will be created during the construction of an `Info` object, as it is now, but functions that read measurement info from a file in which the flag is not present will explicitly set it to `None`. This means that the flag will be added to a file if it has gone through some processing that caused a new instance of `Info` to be created along the way. Does that sound reasonable?