WIP: 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.