Allow shuffling when initializing the game
Merge branch 'master' into gh-pages
Merge new feature from branch master
Create separate js files for controllers and filters
time-log: fix bug of not saving 'timePassed' each second
animation: define a directive for body so that we can overlay a tile over the empty cell and move it
animation: make the empty tile move following keydown event. Bug exists when click New Game
animation: fix bug of locating the empty cell when New Game is clicked
Merge branch 'master' into gh-pages

Conflicts:
	src/js/app.js
animation: refactor directive code
animation: refactor directive code. Change from directive in body to directive in the div of the zero tile
animation: not using jQuery to reduce loading time
animation: add animation, but still have glitches at the beginning
animation: empty tile slides vertically first then horizontally
animation: use  to allow animation
animation: remove animframe_polyfill
animation: use jQuery for animation
mobile-event: use gestures.js to implement swiping for the zero tile
mobile-event: define animation duration differently for keydown and swipe events
layout: create a button for the guide link