Add support so one can terminate the worker thread

I added support to terminate the worker thread so one may properly shut down:

 - `wf_init()` now returns worker thread pointer, as in normal thread creation
 - `wf_terminate()` added to initiate thread termination

An extra action was added to cause the thread to loop, allowing termination using the `while(!chThdShouldTerminate())` method.

Not sure if this is desirable or not.