Code cleanup of old legacy closure implementations

This patch removes all legacy built-in closure implementations. These implementations were not efficient nor recommended for use. Users of the runtime must now register all closures their renderer supports. Both `testshade` and `testrender` do this.

Also cleaned up:
  * callback for closure comparison (was never used)
  * Hide `print_closure` function (allows `pvt` to be hidden from public headers)
  * Fix symbol visibility on a number of classes