Made highlight functions methods of Token object

Since the value of "this" is not correct when used in
addEventListener(), it was necessary to set it correctly using the
bind() method. This also required moving the event handlers from
startGame() into the Token definition.
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()
Added computer's turn

As with the event listeners, it was necessary to correct the value of
"this" with bind() when calling the remove method in setTimeout() or
else remove() would fail with undefined errors.

An alternate solution is to call remove() inside of an anonymous
function when using setTimeout(), but bind() is more efficient.