Refactor and cache user info into user model

This is instead of fetching the info on each profile view.

Test Plan:
- Load user profile, make sure it loads