runtime: use better hash for non-empty interface

The implementation 'return 0' results in too many collisions.

LGTM=khr
R=golang-codereviews, adonovan, khr
CC=golang-codereviews, iant, khr, r
https://codereview.appspot.com/125720044