Implement progress to NanAsyncWorker (WIP)

Additionally corrected some minor lint issues.
There is a race condition here although it may be a theoretical one: the address of `i` is sent to the other thread but if this thread returns before the other thread picks it up, the address is no longer legal.

Sleeping for some duration is not a guarantee; usleep() can return early when the process receives a signal or the other thread may simply not get scheduled in a timely manner.  Proper synchronization would involve a flag, a mutex and a condition variable.