Created by: kbrenneman
These changes rewrite the interface that lets a vendor library patch the OpenGL entrypoints in libGLdispatch.
My goal is partly to simplify the interface and hopefully make it easier to keep the ABI stable, and partly in preparation for fixing the other patching-related bugs (#36 (closed) and #37 (closed)).
From a simplicity standpoint, the new interface lets a vendor library look up an entrypoint, patch it, and then forget about it, whereas the current interface requires it to collect multiple copies of every entrypoint into some internal structure and then patch them all later.
For dealing with the patching bugs, the changes let it use different addresses for a writable and executable mapping, neither of which has to be the same address as the entrypoint passed to the application.