Add new fallback API to allow hooking up to the P/Invoke lookup system
Update project files for new fallback api

This is a backport of the following patches:

6df4b5ac5:
[Embedded] Add new fallback API to allow hooking up to the P/Invoke lookup system
This patch allows a developer to register a fallback for P/Invoke when
embedding Mono.   Typically this is done when you statically link all of your
libraries in some embedded systems and you need to dynamically resolve symbol
names.

There is a *sample* API included (but not compiled into Mono itself) called
mono-embed.c that shows a layman use of the API.   A full implementation would
mandate sorted tables, and would use a bsearch or a hashtable instead of having
linear searches.

a6654bd36:
[windows] Update Mono.def

fbbffbcd7:
[Embedding] Make mono-dl-fallback.h public-safe

0e8579212:
Fix a crash when using the embedding api

error_msg is null when passed into this function from a few places, so
lets not do a null deref here.

8c3068110:
* mono-publib.h, mono-publib.c: new public header file to allow
the removal of gli from the other public headers.
* Makefile.am: install only the public header mono-publib.h.