Reland r170775. Put HashTable::checkKey() in place

We need to keep 'checkKey()' to catch the possible HashTable misuse
(if empty or deleted keys are attempted to pass) and to make it
clear that such keys are not expected.

The 'checkKey()' calls are not put back to 'lookupForWriting'
and 'fullLookupForWriting' methods since the passed keys are
already checked within the parent calls.

The initial patch was reverted because of a compilation error
caused by using uninitialized variable if the key of the hash
table was a std::pair. This patch fixes the issue.

BUG=368346

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

git-svn-id: svn://svn.chromium.org/blink/trunk@173487 bbb929c8-8fbe-4397-9dbb-9b2b20218538