Re-implemented parametrization of test_frame_from_json_to_json
This piece was broken off of #27838 as it made the diff much larger, so hopefully easier to digest on its own.

As is, parametrization here has brought up a lot of rough edges which are responsible for some of the complexity. These are noted with TODOs and summarized as follows (save Py35 issues, which aren't worth addressing at this point):

  - Frame order is not maintained when `numpy=False` (default) and `orient="index"`
  - On windows or 32 bit platforms it appears that `np.int64` roundtrips as `np.int32` (maybe not an issue?)
  - `orient="split"` does not preserve strings in the index if those strings are numeric, though it should be able to
  - `convert_axes` may have surprising behavior when dealing with empty DataFrames
  - DTI seem to roundtrip as strings when written with epoch format for all but `orient="split"
 
Not all of these are the same priority, but figure worth leaving as follow ups