Tweak the ftplugin

Update the ftplugin to behave better. This means use b:did_ftplugin,
toggle cpo as appropriate, and define a b:undo_ftplugin.
Merge pull request #357 from kballard/tweak_ftplugin

Only runo the snippets ftplugin once and make it undo'able.