revisit space reservations, introduce ALLOCATE operation, V2

This is the second updated version of my proposal to replace the
file-wide space reservation with a new ALLOCATE operation.  The
Posix posix_fallocate interface implemented by most Unix systems
allows application to request a range-based reservation, which this
proposal implements.  As it is a true superset of the old file-wide
reservations those have been removed.

Unlike the previous proposal I have not integrated the hole punching
infrastructure and the di_allocated/d_allocated flags into a single
coherent model yet.  I will have a proposal for that soon, which requires
the ALLOCATE operation, but given that the reverse is not true I'd like
to keep it separate for now.

Signed-off-by: loghyr <loghyr@primarydata.com>
Clean up the ALLOCATE, white spaces, and some other loose ends