block allocator for writing files to disk

interface and default implementation