[std] Make `haxe.io.Input` and `haxe.io.Output` abstract classes (#12346)
Methods `readByte():Int` and `writeByte(Int):Void` are left as-is, because marking them as abstract would break compatibility with existing subclasses that use the `override` modifier.