Performance improvements

This PR attempts to improve performance by:
* Upgrading to a newer version of Angular
* Using `$scope.$on('destroy')` event for garbage-collection
* Storing channel name only in `user.channels`