use ltgt module to handle ranges instead of inlining that code.

this pull request removes the code that handles ranges, and uses a module that implements that.
this supports all the ways level-* does ranges, and uses the idb `excludeLower` and `excludeUpper`
instead of comparing every key to the bounds.

all tests still pass.