Best-fit optimization

I've made the best-fit algorithm substantially faster. On a test of data strings of various lengths, I'm seeing an 18-25x speedup compared to the current bisection method. (That's just for the fitting, but currently that can be a noticeable component of the overall code generation time.) Same benefits in python 2 and 3, although 3 seems to run slower overall. Enjoy!