Simplify vector combine behaviour (#205) and hange how Rows work

To make big deedle work correctly, I had to change how `frame.Rows` work
- the result has to be built from the source vectors, rather than creating
it from scratch as an array (that way, we BlockStore implementation can
correctly propagate the IRowIndex of the source vectors).

That change made accessing `frame.Rows` slower, because it was essentially
constructing the entire series of series (in ordinary deedle).

This commit simplifies how vectors are combined (removing `Combine` and
leaving just `CombineN` as per #205) and it adds an optimization for creating
`Rows` - when the transformation is combining of vectors, we handle it in
a special way (in `ArrayVectorBuilder`) and return a virtual "row reader"
vector. This still has more overhead than the original small-deedle version,
but only by 50% or so.