Add skeleton of multi threaded version
Refactor OutputWriter to ResultWriter

Refactor the IOutputWriter to IResultWriter and introduce IResult to
store the result data.
Fix MSVC project dependencies
Use Boost

Utilize the Boost library to provide the multi-threading functionality.
Implement the multi-threading functionality

Using Boost ASIO to implement the multi-threading part.
Merge branch 'features/multithreading'
Improve the README file