my take on not exposing secrets

the idea is the default behavior is to not expose secrets.  There are times, though, when it is a handy feature to get the app itself to write out a compete config file.  

this PR adds the ```--admin.expose_secrets``` command line option and adds a ```secret``` attribute to the Options class.  If ```--admin.expose_secrets``` is NOT on the command line, then ```--admin.print_conf```, ```--admin.dump_conf``` & ```--help``` will always an Option's value as "****************" if that Option has the attribute ```secret == True```.

What about something like this:
```python
if self.option_definitions[key].secret: 
    logger.info('%s: *********', key)
elif 'password' in key.lower():
    import warnings
    warnings.warn("Hiding things like 'password' based on the name of the key is deprecated. "
                  "Consider instead to set secret=True to the option definition.")
    logger.info('%s: *********', key)
else:
    try: 
       ...
```