Refactor OrphanImporter

Hi there!

This is such a cool project, and it's great that you've open-sourced it here, but as someone who just found your project randomly, it'd be great to provide a little more direction on where people could help out! As it is, I just dove in and went for it!

This PR mostly deals with speed and style on the OrphanImporter class. I should have a benchmark soon on how much faster this actually works. 

I tried to quantize this into several commits, so you can pick-and-choose which to take if you don't agree with some of my style choices.
What does defaulting `error` to `nil` get us here?