Front end review

I refactor the whole front end logical:

1. Refactor a lot of $watch bindler by using event system.
2. Refactor user permission logical.
3. Dismiss the opened modal when path changed.
4. Scroll to the top when path changed.
5. Add condition reset button in list.
6. Use start time as the sorting keyword of contest list.

@lyhypacm @pfctgeorge