Move impersonators/chaperones to their own files
I should have done this from the start
Better handling of requires on the Python side