[#1557] Make the contract of Channel.Unsafe.flush() more clear

* Remove boolean parameter from Channel.Unsafe.flush() method
* Move NIO related things to AbstractNioChannel.NioUnsafe
Merge remote-tracking branch upstream/$:{upbranch}