add accessors for PmDeviceInfo input & output

I've added accessors for `PmDeviceInfo.input` and `PmDeviceInfo.ouput` as I needed to access that information, but I didn't want to allow it be modified.

We could also add a `is_opened` accessor too.