ONIE Testing - initial commit

Add mechanisms for testing ONIE.  Built using the following python
modules:

  unittest
  pexpect
  logging
  ConfigParser

test/bin/test-onie.py -- Test harness application entry point

test/lib/dut.py        -- Device Under Test (DUT) classes

test/lib/connection.py -- DUT connection classes (pexpect, telnet, ssh, etc.)

test/lib/power.py      -- DUT power control (on/off/cycle)

test/lib/test_utils.py -- Utility functions useful in tests

test/lib/test_base.py  -- Base test class

test/site.conf         -- Configuration file

test/tests/__init__.py -- Directory to put common tests

See the online help for test-onie.py and the documentation inside the
classes above.

The unittest framework runs tests in lexicographical order, first by
the class name and then by test name within a class.  To control the
test sequence we adopt a class and test naming convention:

  class names:  Test[XYZ]_<Class>, where [XYZ] is a 3 digit number.
  test  names:  test_[XY]_<Test>, where [XY] is a 2 digit number.

Lower numbered classes and tests are run first.

Example: All the tests in class Test100_MeFirst() will run before
the tests in class Test500_MeSecond().

Example: Within a class the test test_10_early_test() will run
before the test test_30_later_test().

If you do not care about test ordering within a class the 2 digit
number is optional.

Also add a target to the Makefile for running tests.

In general, run tests like this:

  linux:$ make test-onie

Additional, optional arguments:

MACHINEROOT and MACHINE - which machine type to test
SITE_CONFIG -- alternate configuration file to use
DUT_NAME    -- DUT name.  Must match what is in configuration file.
DUT_LOG_DIR -- Directory to put log files

The defaults for MACHINEROOT and MACHINE use the fsl_p2020rdbpca
machine.

The defaults for SITE_CONFIG use test/site.conf