re-order `cvmfs_server publish`
FIX: fuser binary distinction not used
add has_file_descriptors_on_mount_point()
force remount on late open file descriptors
TEST: publish with open file descriptors
FIX: print warning only once
add root hash utility functions
use utility functions
remove automatic revision on `transaction`
do root hash comparison in `health_check()`
TEST: check root hash consistency
Refactor: unify open_transaction() and close_transaction()
FIX: whitespace
FIX: failure modes in publishing process
FIX: potential race when opening transaction
documentation for `close_transaction()` function
FIX: `publish_before_hook()` after dirtab exec
Refactor: fuser report generation
Refactor: file descriptor warning
FIX: double check for open FDs on `rollback()`