adds OnEarnedResponse to achievable

that is called when an achievement is successfully unlocked, or fails
unlocking.
If it fails, it makes sure it is not unlocked so that it can attempt
sending to the server again.

It calls the 'earnedCallback' when that happens, passing in the state of
success.