Vim: add comment text object via vim-textobj-comment plug-in

Where has this plug-in been all my life? Discovered via:

http://www.reddit.com/r/vim/comments/26mszm/what_is_everyones_favorite_commenting_plugin_and/cht6pxc

Enables stuff like:

  dac - delete a comment
  cic - change inside a comment
  ...

Depends on the vim-textobj-user plugin, which I am already using (for
vim-textobj-ruby).
Vim: replace The NERD Commenter with tcomment

I've been happily using The NERD Commenter for years, but there are a
couple of things about it that I'd like to improve. One is the way it
comments out nested blocks like so:

  function foo() {
    return 1;
  }

becomes:

  //function foo() {
    //return 1;
  //}

But I would prefer it to become:

  //function foo() {
  //  return 1;
  //}

or:

  // function foo() {
  //   return 1;
  // }

I'd also like to be able to comment out sections within lines, for
example, to comment out a function parameter:

  function foo(bar, boom, bang) {

to:

  function foo(bar, /* boom, */ bang) {

I'm not aware of any way to do either of these with The NERD Commenter.

So, based on a couple of pages:

- http://www.reddit.com/r/vim/comments/26mszm/what_is_everyones_favorite_commenting_plugin_and/
- http://stackoverflow.com/questions/4716810/tcomment-vs-the-nerd-commenter

I decided to compare:

- vim-commentary (from tpope): https://github.com/tpope/vim-commentary
- tcomment: https://github.com/tomtom/tcomment_vim

Both of these address my first concern (the actual commenting style),
but on the second point there is a clear trade off to be had:
vim-commentary is massively simpler (less than 100 lines, as opposed to
tcomment's 2.3k lines), but it doesn't support all motions. For example,
"gcip" doesn't comment inline within parens, but rather it comments out
an entire line. tcomment, on the other hand, supports this motion, and
just about anything else you could imagine. It's ridiculously
configurable.

So, this commit, drops The NERD Commenter in favor of tcomment. I turn
off some of the unwanted mappings (there are many), and swap "gu" for
"g<" as the "uncomment leader" (the latter is a bit awkward to type). I
don't really see any need to use the "g>" ("comment") leader, because
"gc" should be equivalent for any region that isn't already commented,
and I don't see myself wanting to re-comment already-commented regions.

These more advanced motions aren't entirely bug-free, but they mostly
work. For example, "gci(" and "gui(" work to comment out everything
inside some parens and uncomment them; but whule "gcaw" comments a word,
"guaw" does not uncomment it (it turns out that you can undo that using
vim-surround, with "ds/", so there is a workaround, at least...)

One thing that The NERD Commenter had which I occasionally used was the
`<leader>cy` mapping, which yanks before commenting. I may end up making
some equivalent mapping for use with tcomment.