Add as_dict property to Profile resource
Split ProfileView functions out and use Profile resource instead of dicts