Refactoring image burn service and adding some unittests.

Mostly extracting existing logic to separate interfaces:
FileWriter, FileReader, SignalSender

Also, we don't asume that boot device is on /dev/sda

TEST=Run unittests for imageburner;
     On ChromeOS: /usr/sbin/image_burner_tester (needs root device to be on sda,
                      and a removable device on sdb (which gets destroyed)).

BUG=chromium-os:16318

Change-Id: I58d4191ddb3c793cd2ca840ed533c00187e33e26
Reviewed-on: http://gerrit.chromium.org/gerrit/2705
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Tested-by: Toni Barzic <tbarzic@chromium.org>
14 files changed