Refactor Proxy to be an interface with fewer dependencies

Signed-off-by: Phan Le <ple@pivotallabs.com>
Auto-merge remote-tracking branch 'upstream/master'