Don't generate useless string checks for string adds.

If we know that one side of a string add is definitely a string
(i.e. if it's a string constant), then we don't need to emit a
string check for the argument.

This adds a new BuildCheckString() method to the graph builder,
which does "the right thing".

TEST=mjsunit/string-add
R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/78063002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17912 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Replace unsafe uses of Add<> with AddUncasted<>.

R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/78213002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17913 ce2b1a6d-e550-0410-aec6-3dcde31c8c00