Support multiple environment flags

This adds support for multiple environment files via multiple `-e` flags.

For this I had to create a custom `Flag` and extracted the logic to read the env to a function so I could write the tests easier.

I'm not sure if all that new logic should be done in `env.go`, I can happily move it there (or wherever you think it's better).

This fixes #13