oft: handle missing test module/class docstrings
use class decorators to mark tests that shouldn't be run by default
rewrite test spec code in terms of groups
oft: accept test/group names in positional arguments

The --test-spec option is now deprecated and will be removed.
add group decorator and smoke test group

The smoke group is intended to be very fast while covering most important
features.
oft: list all tests for --list, not just the ones matching the test spec
oft: improve help text
oft: remove unused command line options
oft: improve --list output for disabled and non-standard tests
oft: output available test groups in --list
oft: handle missing test module/class docstrings
action_list: throw exception if value is not an action

This is a programmer error, not a switch issue.
throw AssertionError if controller.message_send fails

Unlike other types of exception an AssertionError will cause the test to "fail"
instead of "error". Using an exception instead of checking return values
removes a lot of boilerplate code that wasn't always present (or correct). It
may also help disabuse test writers of the dangerous notion that succeeding in
writing a message to the TCP socket means anything.
remove assertions on the return value of delete_all_flows

This function can no longer fail.
raise an AssertionError if do_barrier fails

This removes a lot of boilerplate code.
remove unused oft_assert module
FuncUtils.verify_tablestats: log table stats after processing all tables
FuncUtils.verify_tablestats: break out of loop if counter exceeded expected value
FuncUtils.verify_tablestats: assert on total counters
FuncUtils.verify_flowstats: similar fixes as with verify_tablestats