o Split generic fastbuf from low-level routines. `struct fastbuf'
no longer contains low-level data like `fd' or `is_temp_file'.
o Introduced safe type casting macros to avoid programming errors.
o `struct fastbuf' is no longer freed by the high-level code.
o Documented behaviour of bflush() between reads and writes.
o Redefined semantics of fastbuf->pos: it now corresponds to `bstop'
instead of `buffer', hence it always coincides with real file
position, making `fdpos' unnecessary.