Defaults the controller and user_params to empty dictionaries in TestRunConfig. (#654)

So users don't have to check for `None` when they access these fields.
diff --git a/mobly/config_parser.py b/mobly/config_parser.py
index 354a97a..145e2d1 100644
--- a/mobly/config_parser.py
+++ b/mobly/config_parser.py
@@ -182,8 +182,8 @@
         # Deprecated, use 'testbed_name'
         self.test_bed_name = None
         self.testbed_name = None
-        self.controller_configs = None
-        self.user_params = None
+        self.controller_configs = {}
+        self.user_params = {}
         self.summary_writer = None
         self.test_class_name_suffix = None
 
diff --git a/tests/mobly/config_parser_test.py b/tests/mobly/config_parser_test.py
index 92450d1..59cd1d2 100644
--- a/tests/mobly/config_parser_test.py
+++ b/tests/mobly/config_parser_test.py
@@ -61,6 +61,20 @@
         self.assertNotIn('summary_writer', str(config))
         self.assertNotIn('register_controller', str(config))
 
+    def test_run_config_controller_configs_is_already_initialized(self):
+        config = config_parser.TestRunConfig()
+        expected_value = 'SOME_VALUE'
+        self.assertEqual(
+            config.controller_configs.get('NON_EXISTENT_KEY', expected_value),
+            expected_value)
+
+    def test_run_config_user_params_is_already_initialized(self):
+        config = config_parser.TestRunConfig()
+        expected_value = 'SOME_VALUE'
+        self.assertEqual(
+            config.user_params.get('NON_EXISTENT_KEY', expected_value),
+            expected_value)
+
 
 if __name__ == '__main__':
     unittest.main()