Copy all file open logic to open()
PIO is a public attribute (at least for now)

We need to be able to set it with .new