Integrate surface client and rework buffer management

Signed-off-by: Simon Busch <morphis@gravedo.de>