Push random state to engines, and change apply execution environment.

When apply is called it gets the random state from the client and sets
it on all the engines. So their uid generation is synchronized.

We also change the `__globals__` attribute on the apply'd function. So
that it executes in the `__main__` environment on the engines.
Add proxyize function to the engines.

This function stores a value and returns the name that can be used to
access it.
Add tests for new proxyize functionality.
Remove apply's return_proxy kwarg

This is is so that proxyize can be used.