Avoid copying a hash table bucket when inserting causes a rehash

From WebKit r155571 by Anders Carlsson <andersca@apple.com>

Allow rehashing to track a hash bucket and return the new pointer to it, thus avoiding having to do a copy of a hash table bucket as well as an extra hash lookup.

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

git-svn-id: svn://svn.chromium.org/blink/trunk@158626 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Add code style check error for using static_cast instead of toFoo function.

The original CL https://chromiumcodereview.appspot.com/23654034/ was reverted as -
1. It effected pushing of new CL with static_cast, though this issue exists at many places
   in current code base. It was agreed to first fix all pain points in current codebase,
   make it warning for now and as devs become ready for this guideline, make it an error.
2. It was causing a regression (http://crbug.com/295673).
3. There was a (perf) issue in unittests execution.
3. It was causing a regression (probably, not sure) in test-webkitpy and WebKit XP bots.

In this modified CL, I have addressed issues 1, 2 & 3. As I am not aware what was broken on
bots, I haven't addressed it yet. Based on input for issue 4, I will correct the patch.

R=dpranke,inferno,ojan,eseidel

BUG=295673

TESTS=Unit tests added in cpp_unittest.py; no behavior changes;

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

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