add generic process proxy pattern in proxy.erl

Centralize the proxy process implementation in proxy.erl
Use a proxy process when joining/removing SC nodes

We use a proxy process for riak_ensemble_manager:{join/remove} to handle
any errors resulting from the riak_ensemble_manager crashing, and
to prevent late responses from getting sent to the claimant in the case
that it already got a timeout for the given operation.
Merge pull request #609 from basho/bugfix/use-proxy-to-prevent-crash-when-joining-sc-nodes-mixed-clusters

Use a proxy process in claimant when joining/removing SC nodes

Reviewed-by: lordnull