Implemented IsNode type trait

Replaces std::is_base_of<BaseNode, Node> solution