**What this PR does / why we need it**:
This change allows the retrieval of the `TenantConfig` or the `DefaultConfig`. It also defines an interface instead of a tenant config function which makes it a little easier to grok the code.
Eventually this will enable us to introduce GEL specific configurations.
**Checklist**
- [ ] Reviewed the [`CONTRIBUTING.md`](https://github.com/grafana/loki/blob/main/CONTRIBUTING.md) guide (**required**)
- [ ] Documentation added
- [x] Tests updated
- [ ] `CHANGELOG.md` updated
- [ ] If the change is worth mentioning in the release notes, add `add-to-release-notes` label
- [ ] Changes that require user attention or interaction to upgrade are documented in `docs/sources/setup/upgrade/_index.md`
- [ ] For Helm chart changes bump the Helm chart version in `production/helm/loki/Chart.yaml` and update `production/helm/loki/CHANGELOG.md` and `production/helm/loki/README.md`. [Example PR](d10549e3ec)
- [ ] If the change is deprecating or removing a configuration option, update the `deprecated-config.yaml` and `deleted-config.yaml` files respectively in the `tools/deprecated-config-checker` directory. [Example PR](0d4416a4b0)
**What this PR does / why we need it**:
Adds an initial implementation of `limited_log_push_errors`.
This initial implementation encompass:
- Runtime per-tenant configuration
- Simple per-tenant rate-limiting based on error message size
Notable features that will be added in future phases:
- Instead of a single error with the final string, give to the manager
the list of all entries
- Once it supports per-entry error, make the rate-limiting separated
per-reason
- Hash the entry error and avoid repeating errors by caching seen errors
in memory
**What this PR does / why we need it**:
Introduce a new configuration named `limited_log_push_errors` that will
be implemented.
The configuration is being introduced on a separated PR to facilitate
future rollbacks.
**Which issue(s) this PR fixes**:
N/A
* move docker driver
* move fluent-bit output plugin
* move fluentd plugin
* move logstash plugin
* move promtail
* match stage uses simple logql label matcher and filter expressions only
* remove remaining logql imports
* remove helpers package and move contents to util package
* move validation and runtime out of util package
* fix imports
* move build and cfg packages into util
* move ParseRequest function to util package
* create a new package for logql models and move marshal/unmarshal code to util folder
* move ErrorLabel to logqlmodel
* move stats package to logqlmodel
* decouple loghttp from logql by moving validation to logql package
* move gcplog to tools
* move PackedEntryKey constant to logqlmodel
* fix stats proto import and rebuild protos
* fix windows promtail tests
* update drone to new dockerfile locations