thread are moveables no need to new them
refactoring function names s/stateMachin/go/
making Module result more generic: using boost::any instead of BSON => for now db saving is broken
adaptation for new output result type
joining all threads in desctructor
Adding task counter to know when we got all the result. So far it works because Browse module is faster (race condition). To make it safer Browse module should be able to send a signal to ModuleManager when it's done
fix, Module object should be passed as ref as they can have pure function
http://stackoverflow.com/questions/15656436/how-to-use-bind-with-abstract-class-passed-by-reference