integrate changes to List from https://code.google.com/p/go/source/detail?spec=svn2adfffbb15deac6c575f24c9d6e31eb694baf93f&r=2adfffbb15deac6c575f24c9d6e31eb694baf93f