ueventd: Break devices.cpp into discrete classes

devices.cpp handles too many things for creating one class.  This
change breaks it up into various files and classes.

* Parsing is moved to ueventd_parser.cpp
* Reading from the uevent socket and Cold booting is moved to a
  UeventListener class, in uevent_listener.cpp
* Firmware handling is moved to firmware_handler.cpp
* The remaining contents form a DeviceHandler class within devices.cpp

Bug: 33785894

Test: boot bullhead x40, observe no major differences in /dev and /sys
Test: boot sailfish x40, observe no major differences in /dev and /sys
Test: init unit tests

Change-Id: I846a2e5995fbb344c7a8e349065c18a934fa6aba
diff --git a/init/Android.bp b/init/Android.bp
index 80d5c42..af1e9d3 100644
--- a/init/Android.bp
+++ b/init/Android.bp
@@ -66,11 +66,14 @@
         "capabilities.cpp",
         "descriptors.cpp",
         "devices.cpp",
+        "firmware_handler.cpp",
         "import_parser.cpp",
         "init_parser.cpp",
         "log.cpp",
         "parser.cpp",
         "service.cpp",
+        "uevent_listener.cpp",
+        "ueventd_parser.cpp",
         "util.cpp",
     ],
     whole_static_libs: ["libcap"],