Implement ProgressivePromise notification in NIO byte channels and ChunkedWriteHandler

- Refine the contract of GenericProgressiveFutureListener.
- Negative 'total' now means 'unknown', which is useful for ChunkedWriteHandler.
Update HttpStaticFileServer example / Fix bugs related with progress notification

 - Fix a bug in DefaultProgressivePromise.tryProgress() where the notification is dropped
 - Fix a bug in AbstractChannel.calculateMessageSize() where FileRegion is not counted
 - HttpStaticFileServer example now uses zero copy file transfer if possible.
Use tryProgress just in case of user error
Merge remote-tracking branch upstream/$:{upbranch}