Faces

Happy new year! I have rebased this on top of the testing branch, and extended the work that was already started there. In particular, my main focus in this PR is to move some of the logic that was in `estimation.compure_prf_estimate` into `estimation.voxel_prf`. I have taken out the parts that pertain to a single voxel (the inner loop) and made them into another function. This might make it easier (for me) to use this, because it is now a bit more modular, and I can wrap my head around the inputs/outputs of this thing. It should also make it easier to test the code (I think). For now, there is some smoke-testing there. That means that the code runs, but I have no idea whether the return values make any sense... Please take a look!