Description
Right now fsync is either disabled or enabled, which means all messages are fsynced or none are. However, once KUDU-120 is in place, only Replicate messages will ever need to be fsynced.
We should be able to specify whether a message requires fsync or not, with the following contract:
If fsync is required for a message, the callback is not called before it has been performed, otherwise it might or might not have been performed.