remove debug output
improve fontification

fix go-type-name-regexp and use [[:space:]] instead of "\\s " for readability reasons
do not change indentation if in multiline string
do not indent labels in column 0 but in normal indentation minus one
some nicer lisp
replace several defuns with macros
add cache to go-previous-line-has-dangling-op-p
remove old go-propertize-syntax code
Do not consider \ an escape character when in raw strings

This implementation generally considers *all* \ in \` sequences as
non-escaping and doesn't touch other occurences of \.

This has two implications:

1) \` inside other structures, such as quoted strings and comments is
also not an escape sequence

2) other escape sequences are still considered escape sequences in raw
strings

The assumption here is that neither is a problem, because other escape
sequences in raw strings do not affect syntax parsing or
fontification, and \` is not a valid escape sequence in other
structures, so should not affect parsing or fontification, either.

If either of those two assumptions turns out to be false, we'll need
to refine this implementation.
do not set syntax-propertize-function for emacsen that don't know it (GNU Emacs <24 for one)
update documentation
add autoload cookie to gofmt-before-save
formatting
get rid of go--flatten

We can (and should) use mapcan instead. go--flatten is (very)
recursive and will break in most cases because of stack level.

Closes gh-18
document issue with go build -o /dev/null
buffer-file-truename is an *abbreviated* truename, so use file-truename instead.

Closes gh-19
make sure kill-line in go-remove-unused-imports includes \n
give in and require cl at runtime
be more lenient when finding commented imports
builtins and keywords need to be surrounded by symbols, not word characters

word characters will not include _ (which we explicitly declare as a
symbol constituent) nor any special unicode characters, which emacs
also classifies as symbols, not word characters.