chore: Switch to viper for configuration loading
Previously configuration was a bit scattered and couldn't be easily overridden.
This now implement viper which is the most common way to solve this problem in
Go. You now use `TUMBLE_` environment variables to overload fields in the yaml
file.