ngRepeat with track by

ng-Repeat without using track by , creates always many "angular" versions of an object AND the underlying html (every time new DOM will be created) , which causes the browser to do ALOT of work while refresh of a ngRepeat Array.

More Information on track by : 
- http://www.bennadel.com/blog/2556-using-track-by-with-ngrepeat-in-angularjs-1-2.htm
- http://www.codelord.net/2014/04/15/improving-ng-repeat-performance-with-track-by/

This could fix or speed up (I don't have that many guilds / challenges / chats in my local server^^) following issues:
- #3663 
- #3486 
- #1884
- #1451
- #1499

I've tested on my local server, with a good number of todos, without trackby I nearly had an "unresponsive script" error, but with trackby the "sync" was VERY fast.

Using track by could also speed up mobile (haven't looked there yet)
@negue can you give a look at #4000 ?