First implementation for InterfaceID. lots of testing for static_cast, dynamic_cast, reinterpret_cast, c-style cast and interface cast.
Using macro to define interface id.