Delete columns on change in columnDef

Mentioned in issue #1404, columns were not being removed when changing columnDefs. This was due to that there was no tracking of differences in columnDefs and existing columns lengths. To fix this, I'm checking for columnDefs being shorter in length than columns. Whenever that happens, I'm deleting the column(s) that are not in columnDefs anymore.

For the project we're working on, the committed code is working fine. However, I don't know if this code is sustainable wrt the rest of the codebase.