Add method `length()` to `ChunkedInput`

ref #2741

1. Add method `length()` to `ChunkedInput` 
2. `ChunkedWriteHandler` can notify `ProgressivePromise` with total number
When there are two cases for return values, I find `@return` useful.

```
Returns the length of the input.
@return the length of the input if the length of the input is known.
        {@code -1} if the length of the input is unknown.
```