Check for valid data first

Changed files to check for valid data from the providers.  For example,
if a user has higher privacy settings in Facebook and they do not
display their location, an error would have been thrown due to the fact
that $user->hometown->name doesn't exist.  This fork rectifies this
issue.