Refactored facebook manager

user models info from opengraph (and permissions info) can now be updated
on any user without the user having to be the logged in user.

Also the FacebookSession object is now only ever retrieved at most once per user
per request and is cached.