Mixed source space

Code to generate source spaces with cortical surfaces and sub-cortical volumes.
Let's wait to make sure @agramfort is okay with that. But if he is, then most of this function could just become a private function, and then in the code where it triages to `_discrete_source_space` or `_volume_source_space` (or so), your function would just be a third potential branch. That way you will be able to inherit the parts of the code that have checks, too, such as minimum distance from a BEM/surface boundary, which is nice.