uc-74 Handle database error + addition of fb client helper

RFCR @garthwebb & @lizlux 

Handles database errors on insertion of a user -> fb mapping that already exists.

Also 
* Did some refactoring of controller codes and moved common functionality to a helper.
* Removed duplicated methods (probably caused by multiple merges)

https://wikia-inc.atlassian.net/browse/UC-74

This doesn't do what you think; ```loadWithCache``` is only intended to take one or the other of these parameters, not both.  Its used from ```lookupFromWikiaID``` and ```lookupFromFacebookID``` which is meant to give you mappings associated with one of those values.

If you want to check for a user mapping you should either use ```lookupFromWikiaID``` which will return all mappings found with a wikia user ID and then iterate through them looking for a matching Facebook user ID, or create another query that does this specifically.

If you end up making a new query, I wouldn't cache it or at least not until it proves to be necessary; this mapping check only happens when a user is connecting their FB account, (rather than every request) and the additional caching would make the cache busting in deleteMapping more complex.