Do not hold biglock while calling a cluster I/O function

When using mount-time option nosyncwrites cluster_push will call cluster_io and
eventually fuse_vnop_strategy. This can lead to a deadlock and a subsequent
kernel panic because biglock is already locked. See 471e6bb.

The issue is addressed by releasing biglock before calling a cluster I/O
function and reaquiring it afterwards.
Add support for fcntl F_FULLFSYNC