Enable difficulty selection menu to have multiple pages

Now the player can choose from many options.
Add checkmarks and locks to show progress in difficulty levels

Also prevented the player from playing a level whose preceding level
has not completed.
Add basic How to Play text to html
Add a comment for key code
Add BulletShieldEnemy with reflecting shield against Tower's bullets

Also added various utility functions for vector arithmetics in 2D.
Merge branch 'master' into py
py: Port BulletShieldEnemy from JavaScript to Python

Also brushed up mathlib for this purpose.
py: Adjust explosion sprites' playback speed for performance

Those sprites have tended to remain for long time, slowing down the
rendering process.  Now we make them 5 times faster, they will make
less influence on performance .
py: Cleaned up trailing white spaces