Adding new ColumnType abstraction.
(cherry picked from commit 0f8b9cc)
Refactoring column types.