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: 
My understanding of the code here is that each item in the array, `names[i]`,which is an unique object containing `userId`, `userName` and `userCount` gets stored in the `item` variable. Then for each object in the array, it is added to the previously created empty object `arrResultObj` as a value to the key of `userId` in `item` objects. 
Here's where I'm making a leap of faith: 

**When a new `userId` is added as the key, it essentially replaces the previously created key / value pair with the same unique `userId`, thus essentially removing all the repeated users after the iteration is complete.**

Is this a right / good way of looking at this? @psybuzz @nikilselvam  what are your thoughts?