Selection: Only emit dgrid-deselect event if previously selected

Also adds tests for select and deselect events;
original test cases courtesy of @treasonx.
CHANGES.md: Note Selection deselect event behavior fix
Fix #885: Escape column IDs in CSS selectors like we do grid IDs

Also avoid calling `put-selector/put` in areas sensitive to this for grid IDs,
as it currently can't handle some characters and doesn't understand escaping.

Special characters in column IDs are replaced with hyphens rather than escaped -
Grid already behaved this way, but updates were necessary to extensions
for consistency.
Add tests for escaping grid/column IDs where necessary
CHANGES.md: Note changes involving special chars in column IDs