virtual: Have a single result class that can store data

We want to have LU, SMS and other tests run at the same time. Begin
by creating a single result where testcases can store additional data.

Move the stats code into the UL test case handling and out of the
suite.

Change-Id: Ie99351bee1515de8cf6870467f08256a53701907
diff --git a/suites/nitb_netreg_mass/register_default_mass.py b/suites/nitb_netreg_mass/register_default_mass.py
index 306eb81..f4e5e80 100644
--- a/suites/nitb_netreg_mass/register_default_mass.py
+++ b/suites/nitb_netreg_mass/register_default_mass.py
@@ -46,15 +46,7 @@
 
 # Check how many results are below our threshold.
 acceptable_delay = timedelta(seconds=30)
-results = ms_driver.get_result_values()
-quick_enough = 0
-for result in results:
-    if not result.has_lu_time():
-        continue
-    if timedelta(seconds=result.lu_delay()) >= acceptable_delay:
-        continue
-    quick_enough = quick_enough + 1
-
-latency_ratio = quick_enough / len(results)
+quick_enough = len(ms_driver.lus_less_than(acceptable_delay))
+latency_ratio = quick_enough / stats.num_attempted
 if latency_ratio < 0.99:
     raise Exception("Latency ratio of %f%% lower than threshold." % (latency_ratio * 100.0))