Implement optional multiple result columns

Implement optional multiple result columns.
Rearrange files.
Split grunt typescript into sections.