Split a bit traefik into package. The idea behind this refactor is to
start move inter-dependencies away and do some DRY or SRP.
- Adds a `provider` package, with providers except `web.go`
- Adds a `types` package with common struct.
- Move `gen.go` to an `autogen` package
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Configurations are now cached from each provider separately so that
we can merge them together when one provider has changed config.
The Web module also returns full config info through the HTML call,
but REST API is working on a separate web configuration that is
sent in just like any other.