Lots of improvements

Hi Christian,

I've added lots of features, refactored a lot, and am pretty happy with this so far.  Let me know what you think.  I'm working on implementing concurrent searched to speed things up and then focus on different output formats, which should be easier as the logic is pretty well decoupled.

Cheers!
bill