Added backspace handler – collapsed selection, adjacent blocks.
Added support for DEL key.
Code refactoring: general clean-up.
Code refactoring: extended comments and removed obsolete code.
Used range#checkStartOfBlock and range#moveToClosestEditablePosition instead of CKEDITOR.dom.walker to make the procedure bulletproof and maintainable (boguses, non-editables, etc.).
Changed lister event: keyup -> key, so it is executed later than other existing key listeners.
Added basic support for bogus BRs.
Fire saveSnapshot events when handling backspace/delete.
Removed long if statement in favor of an early return.
Minor comment clarification.
Fixed JSLint issue.
Added domEvent property for editor#key event.
Handle backspace and delete with modifiers the same way as without them.
Handle backspace and delete with modifiers the same way as without them in lists and tables too.
Handle backspace and delete with modifiers the same way as without them in lists too.
Horizontal rule should be considered as an editable an editable element.

Returning a range anchored next to <hr> is an imperfect solution, but since
<hr> is not a widget, we cannot select it whole. More in http://dev.ckeditor.com/ticket/11861#comment:12.
Handle special case when block's sibling is <hr>.
Changelog entry.
Merge branch 't/11861'