Don't ng-repeat function calls, they're expensive

See http://tech.small-improvements.com/2013/09/10/angularjs-performance-with-large-lists/
Minimise usage of ng-show/hide to reduce number of useless DOM elements

Progress in the direction of #87, especially on mobile.
Merge pull request #258 from lorenzhs/performance

Performance improvements