Fadvise

Merge #2988  & #2964 into together. And add test case.
 @liewegas , bypass make check & plz review. Thanks!
These should be added to librbd's c++ api too, so they can be used by the rbd command.
Adding them to the python bindings would enable their use by things like openstack too.