Bug 970804 - 1.a/3: initial support to run tests by set. r=mdas
Bug 970804 - 1.b/3: lines reorder. r=mdas
Bug 970804 - 1.c/3: separate run_test and add_test. r=mdas
Bug 970804 - 1.d/3: filter oop test cases by manifest correctly. r=mdas

1) ./mach marionette-webapi <dir>/
 - selects all test cases under <dir> and execute them only in
   in-process mode.
2) ./mach marionette-webapi --type=+oop <dir>/
 - selects all test cases under <dir> and execute them only in oop
   mode.
3) ./mach marionette-webapi --type=-oop <dir>/
 - selects all test cases under <dir> and execute them only in
   in-process mode.
4) ./mach marionette-webapi <test>
 - execute <test> only in in-process mode.
5) ./mach marionette-webapi --type=+oop <test>
 - execute <test> only in oop mode.
6) ./mach marionette-webapi --type=-oop <test>
 - execute <test> only in in-process mode.
7) ./mach marionette-webapi <dir>/manifest.ini
 - selects all active test cases listed in <dir>/manifest.ini and
   execute them in the mode(s) according to the manifest.
8) ./mach marionette-webapi --type=+oop <dir>/manifest.ini
 - selects all active, oop={true,both} test cases listed in
   <dir>/manifest.ini and execute them only in oop mode.
9) ./mach marionette-webapi --type=-oop <dir>/manifest.ini
 - selects all active, oop={false,both} test cases listed in
   <dir>/manifest.ini and execute them only in in-process mode.
Bug 970804 - 2/3: only launch test-container app when not available. r=mdas
Bug 970804 - 3/3: add test cases. r=mdas
debug