Extract proxy/config common functions for reuse

Refactor proxy to use the common config.  This is a prereq for #356 and the commits 
have had feedback from @thockin only.
Also fix tests.
Want to guarantee in order delivery of updates, so go OnUpdate() would break that.  Also, removal should be a slice change (create new slice and copy old elements in) - so you'd implicitly not need to sync on the list during access (CoW)