Very big commit. Except boost dependency. Add TCLAP library. Add logger. Except boost filesystem and add simply io system. Change input flags. Fix bugs in change history. Modify some logic in algorithm.