AU: Catch terminate signals and block exit if necessary.

Adds a global Terminator class to manage signals and exit blocking.

BUG=7392
TEST=unit tests, gmerged on device, initctl stop update-engine

Change-Id: I2291d4eb55240a6662b18ff834af161d957bce2f

Review URL: http://codereview.chromium.org/3608015
diff --git a/SConstruct b/SConstruct
index c42b528..1a73466 100644
--- a/SConstruct
+++ b/SConstruct
@@ -264,6 +264,7 @@
                    split_file_writer.cc
                    subprocess.cc
                    tarjan.cc
+                   terminator.cc
                    topological_sort.cc
                    update_attempter.cc
                    update_check_scheduler.cc