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)
I have seen some bugs where a task gets duplicated somehow, same UUID and all. It's difficult to diagnose, and I'm not sure how prevalent it is - but after merging this, I'll keep an eye on any issues regarding this and may revert this one line. The reason being, if track-by fails, it discontinues javascript on the page (it's a pretty hard-core error), which may prevent the user from deleting the offending task, etc. Anyway, I'll keep an eye out and keep you posted. Perf++ > theoretical bug