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```.

I fear this is not the right time to bring this up but that `.default` there is just so ugly. 
Suppose you have an option that has a default (e.g. `False`) but when invoked with `--admin.something=True` you'd expect the default to still be `False` but the actual value to be `True`.