Type stability fixes and more tests

The main problem is that a `Table` column could have any arbitrary type and size. In general, you can deal with all this at runtime with `getColumn`, but the compiler will not be able to infer the type of the returned array.

To mitigate this issue, I've exposed the `getColumn!` function. This circumvents the type instability because the user needs to supply the output array. The type and shape of the column are then inferred from the type and shape of the array.