Add thread support.

Instead of starting several process workers, you now have support for
threads. Supply a number when you call the run function.
Example:

         run(from_addr=9999, to_addr=9998 , nb_threads=128)

You also have the possibility to supply a callback that each thread will
run before starting to listen on connections (useful for opening
database connections, preparing queries, etc).
Example:

        ...
        var db: {.threadvar.}: TDbConn

        proc init_db() =
            db = open(...)

        run(from_addr=9999, to_addr=9998 , nb_threads=128)

Do not share variables between threads. All your non-constant module-scoped variables
should be declared with the {.threadvar.} pragma.
Increase version number: 0.2.0
Merge pull request #2 from idlewan/threads

Threads