Solve various name conflicts and compilation problems. Bit more
housekeeping, as well.
Breaking out the really obnoxiously low-level glue stuff into its own file,
and handling a few things more effectively.
Lots of updates, making the API/user interface something less of a nightmare.
trying to get pointer types to all match up