Added Backend for User Profile API

Work is entirely in Java codebase. Created a UserProfileService and UserProfileController to retrieve and update user profile information. Created tests for both the service and the controller. Created a User model, and updated the UserSession to use it.
Beware: session is serialized in the Redis cache, so this change will not update the session. Better would be if this method did not take a session, but just a new user object, and left persistence in the session to the caller?