runtime: round channel size in allocation instead of using system-specific pad field

Followup to CL 128700043.

LGTM=bradfitz, dvyukov
R=dvyukov, bradfitz
CC=golang-codereviews
https://codereview.appspot.com/133850043
encoding/json: make ,string work when encoding pointer fields

It was respected by unmarshal, but not marshal, so they didn't
round-trip.

Fixes Issue 8582

LGTM=rsc
R=rsc
CC=golang-codereviews
https://codereview.appspot.com/132960043