split and splitLookup

I started this work not having noticed archblob's pull request, but for now this implementation is ~40% faster. I did not implement `split` as a wrapper around `splitLookup` because the separate implementation is nontrivially faster, but I worry that the code bloat and maintenance difficulty could be a greater concern..