preserve_current_directory in TreeChain

TreeChain opens and closes files in the process of iterating over entries or Drawing. This alters the current directory and ROOT deletes histograms created after the TreeChain init since they become associated with the first file in the chain. 

TODO:
* ~~add unit test~~

Sorry for the unrelated commit 4624826 (but I intended that to be merged in soon anyway)