This is a re-work of https://reviews.llvm.org/D38829
git history can be found here: https://github.com/smoofra/llvm-project/tree/files
The goal is full support for python file objects for reading and writing,
including objects which have no file descriptor and override the read()
and write() functions.
To acheive this in a reasonable way, I also remove most of the FILE* usage
inside LLDB and replace it with lldb_private::File, and add a new API class
SBFile which wrapps lldb_private::File.