Checking for collisions after all moves (issue #4)

* Map.positions[x][y] are now arrays to accomodate more than one element
at a single x,y coordinate.
* Introduced Map.collisions hashmap and its accessors setCollision(x,y)
and unsetCollision(x,y), used by Map.move and Map.remove, respectively,
according to the number of elements at each coordinate.
* Introduced Map.elementParent hashmap and its accessors
setElementParent, getElementParent and removeElementParent, required for
collision handling to determine which snake corresponds to a given
element.
* Refactored Game.step into Game.checkCollisions and
Game.handleCollision.
* Snake.body now begins at the head [0] and ends at the tail [length-1],
because eating a fruit no longer adds a new head, so it's now easier to
push the new part after the tail.