utils: Add file_readable helper for non-blocking operation
python-engine: Don't block on no data

Allows output to be generated while waiting for input data.