Command-line CTRL-U, CTRL-W and CTRL-Y

ref https://github.com/tpope/vim-rsi/pull/1
If there's a way to avoid this dance I'd love to know it. But when I tried doing a direct `cnoremap <expr>` like this:

    cnoremap <expr> <C-W> <SID>ctrl_w_before().<SID>ctrl_w_after()

the `getcmdpos()` in `ctrl_w_after()` reports the same position as in `ctrl_w_before()`, so there's isn't any way to get the resulting string after `<C-W>`.