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,
* Users should not be able to sign up via FB with a FB account already mapped to an existing Wikia user. Previously, attempting that created a Wikia user account with a false confirmation message stating user is now connected to the FB account. Now, no account gets created and user gets blocked by proper error message.
* It 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
I'm pretty sure the convention is no space after the `!`. I didn't see it explicitly stated but that's how it's being used here http://www.mediawiki.org/wiki/Manual:Coding_conventions/PHP#Pitfalls.