Group autocommands / Minor refactoring

#### Group autocommands 
Hopefully fixes #230.

This patch group autocommands so that they cannot be registered twice. On few occasions, such as when setting the `filetype` twice on the same buffer, checking for the existence of the variable `b:did_ftplugin` for stopping file sourcing does not work.

#### Refactoring 
I've refactored `ftplugin/go.vim` a bit to make it more succinct. I've replaced the use of the `exists` function with the `get` function.