Column type detection and refactor

Added class ColumnTypeDetector and extracted class
ColumnsSeparatorDetector for clearer design and testability.