implement pair/quote aware backspace/delete

- prevents you from bringing real code onto the end of a comment
- deletes escaped characters as a whole from their edge or from their middle
- enters pairs () [] {} and strings "" and deletes their guts before deleting the emptied pair
- prevents you from exiting a pair if there's real stuff behind you (foo |)
- allows you to delete an arbitrary selection (doesn't inspect the selection -- you could create an unbalanced pair this way -- could extend to warn if this is the case, depending on what the community thinks is best)
- allows you to delete normally within comments