add try fill

A more useful version of read_at_least.
>If `read`
>returns 0 or EOF, the total number of bytes read will be returned.

I guess I'll reformulate that a bit:

>If `read` returns 0 or EOF, the total number of bytes read is returned immediately.