Refs BUG-9099: Support simultaneous copy and dtype args in DataFrame init

closes #9099
This is a somewhat brute-force fix for supporting copy and dtype arguments in DataFrame constructor. Some data might be copied twice if both arguments are set, but if I did the operations in a different order, one other unit test would fail.