Add support for gitcommits in submodules

Submodules don't put the COMMIT_EDITMSG directly in .git/. Instead it's in the
submodule's folder under .git/, so add an ftdetect that handles this.

$VIMRUNTIME/filetype.vim should be updated with this change.
Change quickfix map to wc

wq is much easier to type than wc and is a good mnemonic. I use this map
a lot, so I need it easy to type.
Extract foldtoggle into ficklefold plugin

Pull out foldtoggle into its own plugin repo. Rename it ficklefold (so I
can expand it with other possibilities).
Use some motion synonyms used by vim-surround

Use r for [right-angle braces] and a for <angle braces> like
vim-surround.
Replace punctuation textobjs with textobj-between

The pairs of identical character maps are superseded by
vim-textobj-between: im and am. A dedicated textobj is more consistent
(works for all characters) and this functionality is coming in a future
version of vim.

Use the same map for textobj-between that vim_dev is using for the new
built-in textobj: m for matched.
Store a local statusline when using alternate

Switching between current and alt_statusline breaks when anything aside
from infostatusline changes the statusline (like powerline or airline).
Instead, store the previous statusline in a window-local variable (since
statusline is window-local) and restore from that instead.
Use commentstring to when checking for comments

Instead of hardcoding c++ comments, use commentstring. Tested on C++
enums, but now it doesn't support // comments. I'm finding something
better...
Use comments instead of commentstring in statusline

Use sporkbox's comments parsing which supports // and /* */ comments --
commentstring only supports one kind of comment and it's not the one I
want (enums are usually commented with oneliners).

Source:
http://www.reddit.com/r/vim/comments/1x8mk8/is_there_a_way_to_not_count_blank_lines_with/cf95oyp
And released under WTFPL 2
Cleanup IsCommentLine

Rename variables and remove redundant l: