Switch to debruijn indices, genericize sub/lub/glb

More refactoring in support of HRTB. There should be no change in functionality from these changes.

r? @pnkfelix 
hmm, I would ask for this `doc` mod to be in its own `.rs` file, but that would require either making a `higher-rank/` subdirectory, or using the `path=...` attribute a la `#[path="higher_rank_doc.rs"] mod doc;` which probably is not what palatable to you.