undo CL 11884043 / bfd5ed8236d5

CL submitted prematurely by mistake.

??? original CL description
spec: clarify index and selector expressions

1) Explain a[i] and a[i:j] where a is of type *A as
   shortcut for (*a)[i] and (*a)[i:j], respectively.

2) Together with 1), because len() of nil slices is
   well defined, there's no need to special case nil
   operands anymore.

3) The result of indexing or slicing a constant string
   is always a non-constant byte or string value.

4) The result of slicing an untyped string is a value
   of type string.

5) If the operand of a valid slice a[i:j] is nil (i, j
   must be 0 for it to be valid - this already follows
   from the in-range rules), the result is a nil slice.

Fixes issue 4913.
Fixes issue 5951.

R=rsc, r, iant, ken
CC=golang-dev
https://codereview.appspot.com/11884043
???

R=r
CC=golang-dev
https://codereview.appspot.com/12170046
container/list: added MoveBefore and MoveAfter

Fixes issue 4940.

R=golang-dev, bradfitz, gri
CC=golang-dev
https://codereview.appspot.com/12021044

Committer: Robert Griesemer <gri@golang.org>
spec: clarify a couple of issues about channels

1. They are FIFOs.
2. They are safe for concurrent access.

Fixes issue 5911.

R=golang-dev, dvyukov, adg
CC=golang-dev
https://codereview.appspot.com/11549043