AU: SplitWriter class for parsing our full update files.

Full updates now include data for two partitions (kernel + rootfs).
This CL adds a new SplitFileWriter class which takes the stream of
data, which is expected to be in our full update format (8 bytes big
endian uint64_t of the first partition size, followed by first
partition data, followed by second partition size). It parses the
size, then writes the data to each of two FileWriter classes.

BUG=None
TEST=Attached unittest

Review URL: http://codereview.chromium.org/1800009
diff --git a/file_writer.h b/file_writer.h
index 37207d0..ebb8535 100644
--- a/file_writer.h
+++ b/file_writer.h
@@ -29,7 +29,7 @@
 
   // Wrapper around write. Returns bytes written on success or
   // -errno on error.
-  virtual int Write(const void* bytes, size_t count) = 0;
+  virtual ssize_t Write(const void* bytes, size_t count) = 0;
 
   // Wrapper around close. Returns 0 on success or -errno on error.
   virtual int Close() = 0;
@@ -47,7 +47,7 @@
   virtual ~DirectFileWriter() {}
 
   virtual int Open(const char* path, int flags, mode_t mode);
-  virtual int Write(const void* bytes, size_t count);
+  virtual ssize_t Write(const void* bytes, size_t count);
   virtual int Close();
 
   int fd() const { return fd_; }