saveAsWideText now also returns dataframe

Only about two lines of code had to be added, simple DataFrame commands. and about 4 lines of code moved up in the function. Sorry the github preview shows a bunch of deleted spaces added back in, I think that's an artifact of copy/paste (I still don't have my local repository working). Tested with stand-alone Psychopy v1.81.02, but of course none of this should be heavily version-dependent. 

This is the minimal solution, just adding return of a dataframe to saveAsWideText. I suspect it violates psychopy convention and expectation. I should write a function whose only role is to return a dataframe. Also the code should be vectorised. I can add all this to a github issue that I can post. I don't have time to do much more this year, but if you really want a stand-alone function, I could inelegantly duplicate saveAsWideText, delete the file-writing lines and replace them with the DataFrame lines.

Let me know, the other thing that possibly has to be done is do it for ExperimentHandler.