ENH: Create source space

I've translated some of the C code correctly, some of it (clearly) incorrectly. @mluessi if you get bored and feel like taking a look at `_complete_surface_info` to figure out how to make it go faster, it would be helpful.

Progress so far:

1. [x] Get oct to work
2. [x] Add check for ico (maybe `fsaverage`?)
3. [x] Make ico work
4. [x] Add sample data for `spacing`
5. [x] Make `spacing` work
6. [x] Make `use_all` work
7. ~~[x] Make `morph` work~~
8. [x] Add 1mm check for mne-python differences
9. [x] Make it fast
10. [x] Check that mne-scripts PR is correct, and merge that before this