Added TypeInfo_Class/TypeInfo_Interface.isBaseOf that works like C#/Java isAssignableFrom.

`TypeInfo_Class.isBaseOf` returns true if the argument and the receiver
are equal or if the class represented by the argument inherits from the
class represented by the receiver. This is called `isBaseOf` instead of
`isAssignableFrom` to avoid confusion for classes that overload
`opAssign` and so may allow assignment from classes outside their
inheritance hierarchy and to match existing terminology in the D
runtime. `TypeInfo_Interface.isBaseOf` is similar with the addition
that the argument may be either `TypeInfo_Class` or
`TypeInfo_Interface`.
-------
class ClassA {}
class ClassB : ClassA {}

auto a = new ClassA(), b = new ClassB();

assert(typeid(a).isBaseOf(typeid(a)));
assert(typeid(a).isBaseOf(typeid(b)));
assert(!typeid(b).isBaseOf(typeid(a)));
-------
