## This PR
**Background**
This is an attempt to move services and wiring logic to their end usage.
For example, having `runtime` package in the core module did not provide
any advantage. This package was only used by `flagd` and contained the
logic that binds configurations to service implementations.
Similarly, `flagd-proxy` exposed `sync` service, and having that inside
the core module seemed out of place.
**What's changed**
I have moved `runtime` package to `flagd` & specific service
implementations (flag evaluation and sync service) to their end usage.
**Why ?**
I considered this to be a pre-requisite for
https://github.com/open-feature/flagd/issues/1230. If I attempted to add
another `sync` implementation to the current core module, it would have
made the whole packaging confusing (ex:- we have two sync proto
implementations, which do not serve the same purpose. One for
flagd-proxy and the other for flagd).
After this refactoring, I could add the flagd's sync service, where it
serve buf connect and I can locate that within flagd.
Besides, we still have a core module with all the sharables.
Consider the current packaging in the below diagram,

* nore - core sync is for flag data sync listeners such as files, K8s
...
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>