Can someone write an in-depth explanation of how to set up UltiSnips for vim and use it to create code snippets?