Expose access to options for third-party control

You may want to use the sparts library inside another system that
controls the argparse lifecycle. In this case, use
sparts.get_options(<service or task>) to get the option name(s) and
kwargs that can be used with argparse.ArgumentParser.add_argument().

One example is pytest. In order to expose your service's or task's cli
options as groups when running py.test cli you can use the
pytest_addoption plugin like so:

conftest.py:
```
from sparts import sparts, vtask

from my_service import MyService

def pytest_addoption(parser):
	group = parser.getgroup('MY-SERVICE-AND-TASKS')
	service_opts = sparts.get_options(MyService)
	for sopt in service_opts:
		group.addoption(*sopt.opt.opts, **sopt.opt.kwargs)
	for task in set(MyService.TASKS).union(vtask.get_registered_tasks()):
		task_opts = sparts.get_options(task)
		for topt in task_opts:
			group.addoption(*topt.opt.opts, **topt.opt.kwargs)
```
Clean up some bits from the previous diff (and options in general)

- Fix naming convention on named_tuple instances
- Move named_tuple class declarations outside of method implementations
- Simplify args to _loptName; there is nothing that passes a list.
- Eliminate need for main kwarg to _prepareForArgumentParser, since we
can just define the `_loptName()` classmethod on VService and use that