Added `size{Less,Greater}ThanOrEqual` functions, and using these in place ...

...of manual +/-1 calls which were not Long-overflow safe.

Also fixed performance bug where .take would not bail early when the number of bits taken exceeded the size of a subtree.

All tests pass.