Added remove() method for Token object

There is no need to have access to the tokens array since "this" refers
to the object itself.

At this point, a Token object is only capable of removing its own
element from the DOM, not any other neighboring Token elements.

May need to assign null to the Token object so that the garbage
collector can release it from memory, or use delete operator on the
Token's element property.
Added highlight functions

These are separate functions that call the highlight methods of each
token object which is above the one selected by the player

Had to declare the tokens array as a private member of the module so
that it is accessible for these functions
Renamed some methods as functions

Made distinction between functions and methods to clarify their context.
If it is associated with an object, like in Token, then it is referred
to as a method since it represents a capability of that object. If it
is not associated with an object, then it is referred to as a function.

This is just to give further semantic meaning since technically all the
functions are methods of the Nim module.
Removed reference in comment to old function
Moved all event listeners inside Token constructor
Extended highlight methods to apply to above tokens

The selected token accesses the tokens above it through the tokens
array using its heap property

This change removes the necessity of having separate functions for
calling the highlight method of each token in the same heap

Removed remove() method so it can properly be added later
Added cascading calls for highlight methods

Instead of looping over the Token objects in the tokens array, added call for
the next highlight method within the current one
Added iterative remove method

Needed to add additional "undefined" check in unHighlight()
Updated description of startGame()