Asyncprogress

Rebased and fixed. Replaces #175 and #181. Closes #169.
Ah, that does look more straightforward, but changes the signature of `Execute()`, now that would normally not be a problem, as one could just make this an override -- but since it is pure virtual, you now need to implement both in every derived class. Even adding a default implementation of `Execute` will not fully help, as it still needs to be called explicitly.

Maybe make this a separate class from `NanAsyncWorker`, e.g. `NanAsyncProgressWorker`? Possibly extending the same base.