JS - Perform a swap

We check to see if the player has clicked the same piece.  If so, we
change the state back to idle (because nothing can happen), we
un-highlight the piece, remove the fact that it was ever clicked, and go
use our processor time for more valuable things like Folding@Home.

If we detect a different piece is clicked, we verify with our model that
it's a valid piece to swap.  Only adjacently up, down, left, and right
moves are allowed.  If it is a valid piece, we do the swap in both the
model (a = b = c = a) and the view (we need to maintain a reference to
the initial piece for later).

Keep in mind that at this point we don't allow any more swaps, because
we have to see if the one we just made forms a match.