Changed type checking for clang.
Changed type checking for clang.

In bindings.cpp we needed to use TypeID checking in order to run the
key/subkey/uid state machine.  Dereferencing inside typeid() rather
upset the compiler, so we now use a function IsA that compares
the dynamic_pointer_cast to nullptr.

LachlanGunn/parse4880