Autotest ONIE

This is beginning of the testing framework for ONIE.

At the moment, it provides just the groundwork:
* Parameter validation
* Dynamic module loading
* Dynamic test definitions
* Basic documentation
Haha...the $100 question. ;-)

For starters, look at this comment https://github.com/opencomputeproject/onie/pull/112#commitcomment-9020458 .

The reason for putting out this level of non-functional code right before the holidays it to get feedback on the following:
* test definitions against the OCP ONIE spec
* dynamic loading for backends
* general feedback

Starting next week, everyone is practically gone on holiday or working in a 'silo' as a result of most people being on holiday.  So I wanted to get this feedback before I had code that performed everything.  At the moment, this script:
* reads the test config and definitions
* dynamically loads modules based on that test config
* performs validations on user input
* allows the user to list all test cases
* basic workflow for generating a config file for isc-dhcp-server

The next steps will be:
* ensure dhcpd.conf file generated is correct in all test cases that use the 'dhcp' service
* add other backends (atftpd, nginx, hands, and pdu: hands is simple module to read/write to a serial console: hopefully a console server and pdu is simple module to toggle a smart PDU)
* ensure all backend config files are correct in all test cases that use their respective service
* for a given test case, test configs using the aforementioned tools
* add execution portion to the script so that it will call those tools and shutdown automatically, preserving all logs