Add support for custom io streams in pliers.exec