fix arg parsing and defaults from env

The way envconfig and go-flags were interacting flags would always put
its defaults ontop of envconfig. This makes it so defaults are applied
only if nether env or flags has them
add content and regex matching