Recent contacts view on home screen

Hi guys, I've added some logic to create the recent contacts view. It took me a while and a lot of searching to create this functionality. With this branch, recent contacts are parsed in home.js, and listed out in descending order by the number of occurrence (the more common a name appears on screen, the higher it is on the list).
The number of contacts is limited to 5 and the user's own name is omitted from the list.

 However, there is still a part where I still don't understand (I know, I coded this up O_o). Particularly between line 124 to 134 of home.js. 
Hopefully y'all can shed some light on this and review the PR in the meantime!

Cheers! :smiley: 
Yup, absolutely, repeatedly setting properties in arrays and objects should overwrite the old properties.  It looks like `userId` is a string, so it works as a valid key.

I believe that this is a great way of looking at it, and it's a great way of de-duplicating (removing repeated) values.  The same idea seems similar to the concept of "collisions", which is when two keys map to the same value, a key idea in designing a Hash Table data structure:
http://en.wikipedia.org/wiki/Hash_function