compiler, runtime: simplify select and channel operations

In preparation for upgrading libgo to the 1.9 release, this
approximately incorporates https://golang.org/cl/37661 and
https://golang.org/cl/38351.

CL 37661 changed the gc compiler such that the select statement simply
returns an integer which is then used as the argument for a switch.
Since gccgo already worked that way, this just adjusts the switch code
to look like the gc switch code by removing the explicit case index
expression and calculating it from the order of calls to selectsend,
selectrecv, and selectdefault.

CL 38351 simplifies the channel code by not passing the unused channel
type descriptor pointer.

Change-Id: Ib1db17f15cdeb4cc9d15afa1a26e3286569efd7f
Reviewed-on: https://go-review.googlesource.com/62730
Reviewed-by: Than McIntosh <thanm@google.com>
7 files changed