Improve stream input reading

First read the input, then start the processing of the lines.
Moved to a library in the MSVC project
Validator logic implementation
Implement unit testing