Add another macro to define type cast functions from Node with type checking function.

Existing DEFINE_NODE_TYPE_CASTS() supports only cases where we can check type
with a single Node member function call. It can't cover cases like:
 - A class supports multiple tag names
 - A type checking function is a member of Element, not Node.

New DEFINE_NODE_TYPE_CASTS_WITH_FUNCTION() macro assumes isClassName(const
Node&) function is defined.

BUG=309516
TEST=none; No behavior changes.

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

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