Cancel narrowing before gofmt

Previously gofmt would mess up your buffer if you run
it while your buffer is being narrowed. This patch fixes
the issue.
remove all references to upstream misc/emacs

CL 105470043 <https://codereview.appspot.com/105470043/> removes all
editor and shell integration from the Go repository. This makes our git
repository the canonical source of go-mode.
Allow spaces after "chan<-"
Highlight type names in function parameter list

Currently go-mode does not set font-lock-type-face to type
names in a function parameter list. This patch is to set it
to highlight them.

Context matters to find type names in a parameter list. For
example, X and Y are type names in "func(X, Y)" but are not
in "func(X, Y int)", so we cannot say if they are type names
until we see int or a closing parenthesis in this case. In
this patch, we first scan a parameter list to see whether or
not the list has names, and scan it again to get positions
of type names.

All "T"s (and not "x"s and "y"s) in the following code are
highlighted with this patch.

  func (T)
  func (x T)
  func (x, y T, z T)

  func ([]T, T)
  func (*T, T)

  func (T) T
  func (T) *T
  func (T) (T)
  func (T) (*T)
  func (T) (T, T)
  func (T) (n T, err T)
  func (T) (m, n T)

  func fn(T)
  func fn(T, T, T)
  func fn(x T)
  func fn(x, y T, z T)

  func (T) method(T) T
  func (x T) method(T) (T, T)
  func (x T) method(T) (n T, err T)

  func (x func(x T), y func(T, T) T) func() T

This change has already been reviewed at
https://codereview.appspot.com/81240047