pkg: fix SetFlagsFromEnv behaviour

This function was fundamentally buggy, as a panic could be trivially
triggered by setting the wrong environment variable (e.g.
ETCD_BIND_ADDR=foo). Instead, let's propagate the error and present it
to the user in a cleaner way.
flag: split out SetFlagsFromEnvBad test; declare return error
Merge pull request #1643 from jonboulle/fix_flags

pkg: fix SetFlagsFromEnv behaviour