Fixed bug in compileDowncast

Since the downcasts are never NopCast, this patch ensures that compileDowncast always produces a REGULAR pointer. This is a quick fix, it would be better to patch isNopCast to check whether a downcast is effectively a nop cast, and forward the pointer kind.