Bring over changes to the foreign linker VM code from the panama-foreign branch. To recap. This includes the following changes:
- VM stubs for downcalls are now generated up front, instead of lazily by C2.
- the VM support for upcalls/downcalls now support all possible call shapes. And VM stubs and Java code implementing the buffered invocation strategy has been removed.
- The existing C2 intrinsification support for the linkToNative method handle linker was no longer needed and has been removed (support might be re-added in another form later).
- Some other cleanups, such as: OptimizedEntryBlob (for upcalls) now implements RuntimeBlob directly. Binding to java classes has been rewritten to use javaClasses.h/cpp (this wasn't previously possible due to these java classes being in an incubator module).
This is split out of the main JEP integration due to limited resources, as well as making it easier to review.
I've written up an overview of the Linker architecture here: http://cr.openjdk.java.net/~jvernee/docs/FL_Overview.html.