go spec: conversion types starting with "func" must be parenthesized
go spec: conversion types starting with "func" must be parenthesized

Also: Be explicit what operator means with respect to conversion types.

The parenthesis requirement is a language change. At the moment,
literal function types in conversions that cannot possibly be
followed by a '(' don't need parentheses. For instance:

        func(int)int(x)  ->  same as (func(int)int)(x)
        func()()(x)      ->  same as (func())(x)

but:

        func(int)(x)	 ->  could be func(int)x {...}

Fixes issue 4109.

R=rsc, r, iant, ken, iant
CC=golang-dev
http://codereview.appspot.com/6584065

pombredanne/go-deleteme,tv42/old-go,dsriram/golang,gnanderson/go,dsriram/golang,tv42/old-go,gnanderson/go,tv42/old-go,gnanderson/go,gnanderson/go,dsriram/golang,apparentlymart/golang,pombredanne/go-deleteme,dsriram/golang,apparentlymart/golang,pombredanne/go-deleteme,pombredanne/go-deleteme,dsriram/golang,pombredanne/go-deleteme,tv42/old-go,gnanderson/go,gnanderson/go,tv42/old-go,pombredanne/go-deleteme,gnanderson/go,dsriram/golang,apparentlymart/golang,tv42/old-go,apparentlymart/golang,apparentlymart/golang,apparentlymart/golang,apparentlymart/golang,pombredanne/go-deleteme,tv42/old-go,dsriram/golang