Make the gene_server threaded.

Not as good as using something like Twisted, but performs better than the default.
Make the actual gene_server requests single-threaded.
Merge branch 'threaded_gene_server'

Conflicts:
	gene_server.py