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
Merge branch 'master' into dev-0.4

Conflicts:
	test/intern/mixins/Selection.js
Refactor the selector column plugin into a mixin
Move documentation from the GH wiki into the repo.
Update Selector documentation
Further refactoring to Selector mixin

* Fix a bug related to multiple columns
* Move more functions into the prototype so they can be overridden
* Incorporate fix for #822
Additional Selector tweaks

* Use late binding for maximum extensibility
* Move selector check outside of _configureSelectorColumn
* Add flag to avoid needlessly calling _updateHeaderCheckboxes
* _changeInput -> _changeSelectorInput
* Minor reformatting
Fix select-all checkbox which broke when first addressing 822
Selector test cleanup

* Update remaining instances of selector: true to "checkbox"
* Remove grids showing spurious use cases with checkbox + radio
Tweak last fix to move out _selectionTriggerEvent assignment