Bug 976733 - part 1 - add walking functions to HierarchicalStringList; r=mshal

Having to walk over elements and strings of HierarchicalStringList with
an external recursive function is un-Pythonic and adds unnecessary
obfuscation to several tasks.  Add a walk() function to
HierarchicalStringList, modeled on os.walk(), to handle these cases more
directly.
Bug 976733 - part 1a - add test for EXTRA_JS{_PP,}_MODULES output; r=mshal
Bug 976733 - part 2 - add TEST_HARNESS_FILES and convert testing/mochitest/ to use it; r=gps
Bug 976733 - part 3 - convert testing/mozbase/ to use TEST_HARNESS_FILES; r=gps