Why is in Stream.h `virtual void flush() = 0;`? `flush()` is output related and should be in `Print` as it is in AVR core.