Google datastore modeling help
As per my understanding, your business rules (requirements) are as follows.  


Each User can have one or many User Friends.
Each User Friend must belongs to one User.
Each User can send one or many Messages.
Each Message is sent by one User.


By following the above mentioned business rules, your database design may looks like as follows,

USER 
{ 
 user_id 
}

PASSWORD 
{
password_id, 
user_id
}

USER_FRIENDS 
{ 
userfriend_id, 
user_id, 
added_by, 
removed_by 
}

MESSAGE 
{ 
message_id, 
message,
sent_by,
recieved_by,
is_read
}


If you need to track the user history, add the required data fields with domains such as timestamp, date, etc...at the appropriate entities (message history, login history, friends login, add/remove history). For calculating storage space and setting limit for users, you can done that using programing. I hope this will give you an idea.