bugfix: dont source file based snippets more than once

Set the s:did_<filetype> flag after reading in
file based snippets. This prevents snippets getting read in more than
once.

Move the code that checks for file based snippets out of
after/plugin/snipMate.vim and into plugin/snipMate.vim. Refactor this
code into functions for readability.

Signed-off-by: meese <msanders42@gmail.com>
fixed bug with updating tab stops after a nested snippet is inserted
updated documentation with regard to file-based snippets (still needs some work)
fixed a typo in the check for global file-based snippets
fixed another bug when expanding a nested snippet in a placeholder (one more to go
added fix for more special characters (., ^, and $) in snippet triggers
fixed bug with dotted filetypes
fixed bug with dotted filetypes in file-based snippets
fixed typo in check for file-based snippets
fixed objc/cpp command-based snippets
cleaned up code dealing with triggers for dotted file types
fixed typo that prevented file-based snippets from being loaded in Windows
fixed some bugs with expanding nested snippets
rewrote and updated some of the documentation
added a default "guard" snippet for checking if a snippet has been loaded more than once, and put cpp snippets in their own file"
added automatic setting of g:snippet_filetype to the 'guard' snippet
refactored again; s:BuildTabStops() may actually be somewhat comprehensible now
updated documentation
fixed bug with file-based snippets
added fix for bug with variables inside placeholders