AU: Speed up updates by using buffered writes.

Given that SSD writes are really slow, this improves performance significantly.
This reduces update time on AGZ from 375 to 100 seconds.

BUG=6901
TEST=unit tests, gmerged on device and measured speed

Change-Id: Idac7743f6eaa8f26878a2d1f6b9401513e2ca600

Review URL: http://codereview.chromium.org/3471006
diff --git a/download_action.h b/download_action.h
index c0c36f1..f6d5a11 100644
--- a/download_action.h
+++ b/download_action.h
@@ -11,13 +11,13 @@
 
 #include <string>
 
+#include <base/scoped_ptr.h>
 #include <curl/curl.h>
 
-#include "base/scoped_ptr.h"
 #include "update_engine/action.h"
 #include "update_engine/decompressing_file_writer.h"
 #include "update_engine/delta_performer.h"
-#include "update_engine/file_writer.h"
+#include "update_engine/buffered_file_writer.h"
 #include "update_engine/http_fetcher.h"
 #include "update_engine/install_plan.h"
 #include "update_engine/omaha_hash_calculator.h"
@@ -105,6 +105,8 @@
   scoped_ptr<SplitFileWriter> split_file_writer_;
   scoped_ptr<DirectFileWriter> kernel_file_writer_;
   scoped_ptr<DirectFileWriter> rootfs_file_writer_;
+  scoped_ptr<BufferedFileWriter> kernel_buffered_file_writer_;
+  scoped_ptr<BufferedFileWriter> rootfs_buffered_file_writer_;
 
   // Used to apply a delta update:
   scoped_ptr<DeltaPerformer> delta_performer_;