Fadvise

Merge #2988  & #2964 into together. And add test case.
 @liewegas , bypass make check & plz review. Thanks!
@jdurgin . If there are func set_op_flags(ObjectOperationFlags falgs) and set_op_flags2(int flags). We can add 'DEPRECATED' for set_op_flags. Is ok?