spec: clarify returns, defer statements, and panics
spec: clarify returns, defer statements, and panics

This is an attempt at making the interaction between
these three constructs clearer. Specifically:

- return statements terminate a function, execute deferred
  functions, return to the caller, and then execution
  continues after the call

- panic calls terminate a function, execute deferred
  functions, return to the caller, and then re-panic

- deferred functions are executed before a function _returns_
  to its caller

The hope is that with this change it becomes clear when a
deferred function is executed (when a function returns),
and when it is not (when a program exits).

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

webfd/go-zh,webfd/go-zh,bryanxu/go-zh,glycerine/jeaten-go-arrayof-structof,bryanxu/go-zh,glycerine/jeaten-go-arrayof-structof,sanjosh/sanjos100-tipc,rflanagan/reginaldflanagan-project1,bryanxu/go-zh,glycerine/jeaten-go-arrayof-structof,d0f/go-zh,mhennings/marcohennings-go,scirelli/scirelli-go,rdp/rogerpack2005-golang,webfd/go-zh,scirelli/scirelli-go,d0f/go-zh,mhennings/marcohennings-go,bryanxu/go-zh,glycerine/jeaten-go-arrayof-structof,scirelli/scirelli-go,rdp/rogerpack2005-golang,rdp/rogerpack2005-golang,mhennings/marcohennings-go,d0f/go-zh,sanjosh/sanjos100-tipc,rflanagan/reginaldflanagan-project1,glycerine/jeaten-go-arrayof-structof,rdp/rogerpack2005-golang,d0f/go-zh,scirelli/scirelli-go,d0f/go-zh,rdp/rogerpack2005-golang,mhennings/marcohennings-go,d0f/go-zh,glycerine/jeaten-go-arrayof-structof,scirelli/scirelli-go,scirelli/scirelli-go,mhennings/marcohennings-go,webfd/go-zh,rflanagan/reginaldflanagan-project1,scirelli/scirelli-go,rdp/rogerpack2005-golang,rflanagan/reginaldflanagan-project1,bryanxu/go-zh,rflanagan/reginaldflanagan-project1,d0f/go-zh,scirelli/scirelli-go,glycerine/jeaten-go-arrayof-structof,sanjosh/sanjos100-tipc,mhennings/marcohennings-go,bryanxu/go-zh,glycerine/jeaten-go-arrayof-structof,rflanagan/reginaldflanagan-project1,webfd/go-zh,webfd/go-zh,sanjosh/sanjos100-tipc,rdp/rogerpack2005-golang,sanjosh/sanjos100-tipc,webfd/go-zh,sanjosh/sanjos100-tipc,bryanxu/go-zh,bryanxu/go-zh,d0f/go-zh,sanjosh/sanjos100-tipc,rflanagan/reginaldflanagan-project1,rdp/rogerpack2005-golang,sanjosh/sanjos100-tipc,webfd/go-zh,mhennings/marcohennings-go,rflanagan/reginaldflanagan-project1,mhennings/marcohennings-go