Fix and cleanup sim framework copy tests

get_table now returns a DataFrameWrapper, which will not be
re-evaluated with __getitem__. Instead, call get_table twice.

to_frame() always returns copies, so avoid using it when
testing other behavior.

Rename table_source since it has been replaced by cache=True.

Use a for loop to reuse code when creating tables of computed columns.