UC-116 Facebook Client Service & improved user-mapping related error handling

This adds a Facebook Client Service to unify the way user mappings are created. This allows for all controller logic to go through the service in order to create a user mapping. This service is the front for communicating with FacebookMapModel (partially for now). We can then refactor more operations later into the service to avoid duplicate logic in multiple places.
This also simplifies error handling; now that we have more error cases to cover.

* Also excludes UserSignup special page from return-to logic, so that user does not land on it after logging in.

https://wikia-inc.atlassian.net/browse/UC-116
Ah, I see now. Personally I agree with Garth in that it might be nice if connectToFacebook() used exceptions for error conditions over the Message object. It helps prevent the confusing case where ```$mapping``` actually refers to a ```Message``` object, and using those exceptions you could pass the message key as the exception message. That could then be passed into here and we could handle messaging all in one place and in one way.