maps: forward existing CR maps / use <Plug>

This is based on how endwise [1] handles it, but requires a patch/pull
request to endwise to work correctly [2].

Ref: https://github.com/mtth/cursorcross.vim/issues/1

1: https://github.com/tpope/vim-endwise
2: https://github.com/tpope/vim-endwise/pull/47
Improve mappings setup

- re-map `<CR` via maps, not from the functions. The convention appears
  to be that the `<Plug>FooCR` mappings do not trigger `<CR>`
  themselves.
- Add `<Plug>CursorCrossBS` mapping.
- Add s:setup_map to setup both CR and BS mappings: this improves on
  the version based on endwise from the previous commit:
  - Use <unique>, catch any error and provide help.
  - Handles g:cursorcross_no_map_CR and g:cursorcross_no_map_BS to
    skip mappings.
- Use `<unique>` also with mapping for settings: this will not overwrite
  them and provide a hint to the user.

Ref: https://github.com/mtth/cursorcross.vim/issues/2
Cleanup/remove empty return values, use i_CTRL-O instead
Remove proposed `<unique>` for mappings

Ref: https://github.com/mtth/cursorcross.vim/pull/3#issuecomment-34768364
Revert "Cleanup/remove empty return values, use i_CTRL-O instead"

`<C-R>` with an empty string as return value is actually required to
make chaining work, as with:

    fun! My_CR_map()
      " "<CR>" via delimitMateCR
      return "\<Plug>delimitMateCR\<Plug>CursorCrossCR\<Plug>DiscretionaryEnd"
    endfun
    imap <expr> <CR> My_CR_map()

Otherwise also autoindent will not happen.

This reverts commit 0d53cf3c307808e59ca32e42be4544165b3bd282.
Merge pull request #3 from blueyed/map-forward-cr

Improve mapping compatibility.