[update] movement: obstacles - body, wall, out-bound grid
Merge branch 'master' of https://github.com/GameGGGGGGGAI/SnakePlus into L-feature-obstacles

Conflicts:
	js/game.js
	js/grid.js
	js/init.js
	snake.html
[update] Compine Snake Head and Snake Body object into Snake Part object

[update] Snake Part objects become first in first out instead of regenerate in every reflesh, GREAT!
[update] Modify Drawing code by using William's direction
[update] Saperate screen update and game update, they can have different speed now
[update] Moving snakeMove into gameUpdate, so snake movement follow gameUpdate speed now
[update] Adding Update function into each onscreen game object, so they can do update during the game easily
[update] Remove junk functions
[update] wall penetration
Merge branch 'feature-movement-obstacles' of https://github.com/GameGGGGGGGAI/SnakePlus into L-feature-obstacles
[merge] pauls' draft for the item detection
[merge] movement branches
[update] Draw order fixed, body connection no longer overlap with the body part

[update] Color of snake head and snake body become variables, which can be adjusted to change the color of snakes
[update] items effects - lengthen, shorten, accelerate, decelerate
Merge branch 'feature-draw-order-fix' into master1
Add random item and add id in snake for player and ai
[update] items effects - lengthen, shorten, accelerate, decelerate
[merge] codes for different item colors
 [update] code utilization