[lib] Abstract DDP Client logic into a class

- Accept three function pointers to serve as added, changed, removed callbacks