Features/configuration

add support for configuration reading from multiple sources, sources are ordered by `priority`.

- `Default` has the lowest priority `0`, 
- `Git` has priority `10`,
- `Yaml` has priority `20`,

new configuration sources can be added as plugins