Support merging on ordinally indexed virtual frames & series

To implement this, we need to represent ordinal index not as `int64 * int64`
(single range) but as `(int64 * int64) list` (a sequence of non-overlapping
rnages). The commit implements this as the `Ranges` module.

There was also a bug in how missing values were generated in the test suite
for big deedle, so this is fixed (with a few test fixes).