runtime: adjust errorCString definition to avoid allocation
runtime: adjust errorCString definition to avoid allocation

The low-level implementation of divide on ARM assumes that
it can panic with an error created by newErrorCString without
allocating. If we make interface data words require pointer values,
the current definition would require an allocation when stored
in an interface. Changing the definition to use unsafe.Pointer
instead of uintptr avoids the allocation. This change is okay
because the field really is a pointer (to a C string in rodata).

Update issue 8405.

This should make CL 133830043 safe to try again.

LGTM=bradfitz
R=golang-codereviews, bradfitz
CC=dave, golang-codereviews, r
https://codereview.appspot.com/133820043

webfd/go-zh,d0f/go-zh,d0f/go-zh,bryanxu/go-zh,webfd/go-zh,sanjosh/sanjos100-tipc,d0f/go-zh,d0f/go-zh,d0f/go-zh,bryanxu/go-zh,sanjosh/sanjos100-tipc,d0f/go-zh,webfd/go-zh,sanjosh/sanjos100-tipc,sanjosh/sanjos100-tipc,sanjosh/sanjos100-tipc,bryanxu/go-zh,d0f/go-zh,sanjosh/sanjos100-tipc,sanjosh/sanjos100-tipc,bryanxu/go-zh,sanjosh/sanjos100-tipc,bryanxu/go-zh,bryanxu/go-zh,webfd/go-zh,webfd/go-zh,d0f/go-zh,bryanxu/go-zh,bryanxu/go-zh,webfd/go-zh,webfd/go-zh,webfd/go-zh