Catch exceptions that happen within Callbacks

If a Callback throws an exception without catching it prior to returning
into SteamAPI.RunCallbacks() it causes Callbacks to
stop functioning correctly until the application restarts.
Remove the Callback GC hack for users upgrading from pre-3.0.0