Rewrite grammar rules correctly. Address #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.

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.
Add Printf format verbs.
Add Go grammar tests and fix up numerics.

Numeric parsing was leaving off leading and trailing periods in numbers
like '.25' and '0.' because of erroneously putting word borders around
both sides. Each of those needs a special case.
Add matcher for package function and method calls.
Fix bug with '(' after func name in declaration.

The '(' was being included in the match and didn't get captured as an
operator by the appropriate matcher elsewhere.
Fix bug where ^func( was incorrectly matched

It was incorrectly expecting the rest of the function (method)
declaration to follow it after a space.
Fix same issue as in 8e9e78e for func calls.
Add .travis.yml from atom/ci.
Match type + simple var decl, regular func call

Variable assignment can be pretty complex[1]. The simple var
declarations matched in this commit are limited to "var <name>" and
"<name> :=".
Match all var decl forms except multiple shorthand
Merge pull request #18 from moshee/the-go-way

Attempt to rewrite grammar rules correctly (#7)