Fix memory layout issue in IntegratedApplication private header; header
files should *never* conditionally declare instance variables in classes
dependent on the language in use.

Also add macro for cross-language forward declaration of Objective-C
classes.

The previous commit was incorrect in stating that Objective-C classes
cannot hold pointers to C++ classes with virtual methods. The
restriction only applies to regular instance variables, NOT pointers.

The previous commit will not be reverted because the new code is simpler
anyways. THIS change by itself would have fixed the issue, though.