Add include guard snippets: once and guard

I usually just use pragma once, but also provide guard for old-style
include guards.

Not using leading underscore to avoid violating C++ reserved names [1]

Not using Google's style guide [2] recommendation of trailing underscore
because it looks unbalanced.

[1] http://stackoverflow.com/a/228797/79125
[2] http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#The__define_Guard
Ensure all cpp snippets end with terminator

${0} is used as a terminator for snippets. Ensure all cpp snippets end
with it.

(Although it's not mentioned in the documentation.)
Fix broken snippets that depended on Filename()

Filename() existed in snipmate, but doesn't in UltiSnips. Instead, use
snip.fn for raw filename or snip.basename to strip the extension.

Changes behavior of ifhasmapto to prefer lower-cased strings and wrap in
parentheses (to prevent timeoutlen pauses [1]).

Tested vim snippets ifload and ifhasmapto.

[1] http://stackoverflow.com/questions/13688022/what-is-the-reason-to-parenthesize-plug-map-names