Mixed source space

Code to generate source spaces with cortical surfaces and sub-cortical volumes.
If `volume_label` is not None, then `pos` must be a `float` (not `dict`), right? Is this checked? In any case, it should be stated in the docstring. Maybe we should add a note saying this function can be used three ways:

1. Discrete source space. In this mode, `pos` must be a dict, `mri` must be None (right?), and `volume_label` must be None.

2. Whole-brain volume source space. In this mode, `pos` must be float, `mri` must be provided, and `volume_label` must be None.

3. Volume subset source space. In this mode, `pos` must be float, `mri` must be provided, and `volume_label` must be provided.

In fact, we should probably split the `discrete` source space creation into a new function and deprecate the `pos`-as-`dict` functionality entirely. But we can do that in a subsequent PR.