Redo DataFuture.__repr__ to reflect relevant info and remove circular imports (#2394)
Redo DataFuture.__repr__ to reflect relevant info and remove circular imports (#2394)

This is most immediately motivated by removing state related imports,
which in upcoming typechecking PRs cause circular import problems,
but also removes the state reference to the parent app future, which
does not accurately reflect the state of the DataFuture, and adds in
the File object which is being represented by the DataFuture.

The result is much more verbose, especially as File's repr is very
verbose, but contains a lot more information, as befits a repr.

previously:

<DataFuture at 0x7f2a5b567160 state=pending>
now:

<parsl.app.futures.DataFuture object at 0x7fce6a80e6a0 representing <<class 'parsl.data_provider.files.File'> at 0x7fce6a80e910 url=test1.txt scheme=file netloc= path=test1.txt filename=test1.txt> not done>

Parsl/parsl,Parsl/parsl,Parsl/parsl,Parsl/parsl