Add Boot classes

Improve sample Device YAML to make it easier to parse.
Build a QEMU command line.
Add Timeout support for Actions.
Create a framework for initiating a shell connection.
Add initial code for sending text to the booted KVM.

Change-Id: I8409be6d02ba186206838ab06b6b7ddd266beb4c
Improve LMP modules status init code :
The test board can always connect with the LMPs, we can submit a non-LMP test(there isn't lmp_module section in the json file) jobs or a LMP-related test jobs.
patch detail:
    Add "def data_integrate(lmp_module_data, config)" in actions/lmp/init_boards.py for merging lmp default init data and lmp test init data
    Add lmp_*_defconf in config.py for lmp module default config data, for example:
        lmp_*_id = {module_name : id code}
        lmp_*_defconf = {module_name : default config}
            lmp_sata_id = {"default":"13060066"}
            lmp_sata_defconf = {"default":"disconnect"}
            lmp_usb_id = {"default":"13060020"}
            lmp_usb_defconf = {"default":"disconnect"}
            lmp_eth_id = {"default":"13060020"}
            lmp_eth_defconf = {"default":"disconnect"}
            lmp_hdmi_id = {"default":"13060020"}
            lmp_hdmi_defconf = {"default":"disconnect"}
            lmp_lsgpio_id = {"default":"13060020"}
            lmp_lsgpio_defconf = {"default":"a_in"}
            lmp_audio_defconf = {"default":"disconnect"}
    Improve LMP init code in job.py

Change-Id: Iba643a2e545a05c76cc2a0a0644a39d7e64818b9
Fix a typo in pipeline sample jobs.

Change-Id: Ia0796c34eadc224d93d5d317fbaf0f6c97e0681c
Fix PEP8.

Change-Id: Ia32b5d7c57b5a5967651ef44b6582ccf3070774b
Pipeline: add some FIXMEs and comments

Change-Id: I8196d334fef644496a950c1e0e35b67574c83b58
fastboot: raise CriticalError when deployment fails

Change-Id: I1309cad7ec7e03cec67b6e36ef2bad5c81405aca
Merge branch 'master' into staging