config: Implement configuration file handling
- Split out flags into default flags and cmd specific flags
- Introduce a toml config
It should be noted that the config file takes precedence over the command line flags. Mostly due to issues on how we populate the Config struct.