Allow nested hashes as the target of External's user_info_mapping

The `user_info_mapping` hash allows you to embed slashes in the values such as

    {:username => "user/name"}

This PR allows you to add slashes to the keys as well, which will build nested hashes instead of single keys.

We need this in order to accept external registrations via facebook, where the email goes on the User model but the first_name and last_name go on a Person model.