AU: Class to perform delta updates.

A class to perform delta updates and the associated unittests. Also,
change the delta diff generator executable to be able to apply a
delta, which is handy for debugging.

TEST=Attached unit test, hand-tested on real build images
BUG=552

Review URL: http://codereview.chromium.org/1718001
diff --git a/file_writer.h b/file_writer.h
index c506c01..37207d0 100644
--- a/file_writer.h
+++ b/file_writer.h
@@ -21,6 +21,7 @@
 
 class FileWriter {
  public:
+  FileWriter() {}
   virtual ~FileWriter() {}
 
   // Wrapper around open. Returns 0 on success or -errno on error.
@@ -32,6 +33,9 @@
 
   // Wrapper around close. Returns 0 on success or -errno on error.
   virtual int Close() = 0;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(FileWriter);
 };
 
 // Direct file writer is probably the simplest FileWriter implementation.
@@ -50,6 +54,8 @@
 
  private:
   int fd_;
+  
+  DISALLOW_COPY_AND_ASSIGN(DirectFileWriter);
 };
 
 class ScopedFileWriterCloser {
@@ -63,6 +69,8 @@
   }
  private:
   FileWriter* writer_;
+  
+  DISALLOW_COPY_AND_ASSIGN(ScopedFileWriterCloser);
 };
 
 }  // namespace chromeos_update_engine