Fix Executor functions to work on pointer + pointer to sync.WaitGroup

Using a pointer to sync.WaitGroup fixes the problem on "Observer
stopped" not being always visible.
That's because we copied the WaitGroup and created a new one everywhere
an Executor is manipulated.

Thanks @dpanth3r!
executor.New return a pointer