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.
We should DRY this away with a simple but useful function in `mne/proj.py` (I think):
```
def _add_average_ref(info):
   """Helper to add an average ref"""
   ... the code with the conditionals you have ...
```