Modifying exception throwing in Sync::Digest

Now there are more diagnostic information attached to each exception
diff --git a/model/sync-diff-leaf.h b/model/sync-diff-leaf.h
index 084b5fc..a4b6538 100644
--- a/model/sync-diff-leaf.h
+++ b/model/sync-diff-leaf.h
@@ -24,6 +24,7 @@
 #define SYNC_DIFF_LEAF_H
 
 #include "sync-leaf.h"
+#include <boost/exception/all.hpp>
 
 namespace Sync {
 
@@ -74,6 +75,14 @@
 
 typedef boost::shared_ptr<DiffLeaf> DiffLeafPtr;
 
+std::ostream &
+operator << (std::ostream &os, Operation op);
+
+std::istream &
+operator >> (std::istream &is, Operation &op);
+
+struct SyncDiffLeafOperationParseError : virtual boost::exception, virtual std::exception { };
+
 } // Sync
 
 #endif // SYNC_DIFF_LEAF_H