set_list/list_settings uses Tuples, __main__ added

The set_list() and list_settings() functions now
use a list of Tuples to set/list settings.
They use the [(opt, val), (opt, val)..] form.

__main__.py was added so the test_run() can be
used with python -m.

The version header was re-added to save().
With no config the header reads:
"# configuration"

With self.name set as 'MyApp' it reads:
"# configuration for MyApp"

And finally, if self.version is set it reads:
"# configuration for MyApp v. 1.blah.blah"