implement __repr__ for WorkerContext and others

I wonder whether we should disallow non-ASCII service names. You can't have non-ASCII provider names because they need to exist as methods. Whereas services can declare a ``name`` attribute as a string.