New: tableView:shouldReorderColumn:toColumn: CPTableView delegate method

NSTableViewDelegate implements the method tableView:shouldReorderColumn:toColumn: (https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/NSTableViewDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/NSTableViewDelegate/tableView:shouldReorderColumn:toColumn:)

This pull request implements that method for CPTableView. The solution can be explained in 4 points: 

- CPTableView registers delegate methods when setting the delegate.
- CPTableView implements a private method called _shouldReorderColumn:toColumn to check if it allows column reordering and if the delegate allows a given column to be reordered.
- Before actually moving the column in _moveColumn:toColumn: method, we now ask the delegate opinion though the new CPTableView method
- CPTableHeaderView _shouldDragTableColumn method checked only if tableView allows column reodering. It now calls the new CPTableView method to verify if it allows column reordering and ask its delegate opinion with newColumnIndex equal to -1.