Pass the NSError object to the listener to help with fault diagnosis on Game Center failures.

Currently in the Game Centre Manager, failure callbacks such as ``playerLoginFailed()`` are invoked without any context, so it's impossible to know what went wrong. Passing the NSError can help with logging.

This PR passes the error to the failure callbacks and also provides a meaningful error when the failure callbacks are invoked for an unauthenticated player.