Attempt to rewrite grammar rules correctly (#7)

Due to being machine converted several times and actually being an amalgam of Java, C, D, Python, a little Go, and some other syntaxes I can't recognize, the Go grammar has been having a bit of a hard time highlighting actual Go code. I'm sure many have noticed.

It was kind of bothering me so I deleted most of it and replaced it with a port of the "misc/vim" syntax in the standard Go distribution. Some things are missing, but for now, it's much more Go-compliant than before.

I realize this is a big rewrite but it needed to be done. Observe: [before](https://i.ktkr.us/cJVi.png) and [after](https://i.ktkr.us/SfTj.png) (images not inline because they're kinda big). I forgot to comment on this but you'll also notice that the imaginary number literals are not being highlighted at all.

I realize the features I have in here are probably not what everybody would like, so I welcome and encourage any PRs to my PR. In particular, I've noticed a few things:
- [ ] TODO, etc highlight inside line comments (it works in block comments only)
- [ ] Decide what to do with `package.Type`, `package.Function`, `obj.field`, etc. highlighting. It's impossible to tell what's a method/field/package/custom type/etc without using the type system (oracle integration, anyone?) but I didn't like highlighting everything as a Type either.
- [ ] I've also tried to test it as well as I could, but I can't think of every possible syntax combination, and as such my test file probably isn't comprehensive. How does one even test a language grammar?
- [ ] Some parts are probably also a bit redundant, but the tmBundle file layout was already confusing me enough before being converted to CSON, so I am not terribly well-versed in the format.
- And so on.