Define TowerOfHanoi boilerplate

* TowerOfHanoi is an object to hold state so it's possible to depend on it in order to draw it
* Define assert function to create tests
* Define assertArrayEquals to make it easier to compare arrays
Refactor tests a little - do not depend on same object state for all tests
Refactor assertArrayEquals to compare nested arrays
Invert Tower generation so #pop can be used instead of #shift when unstacking disks

* update test
Define tower totalDisks (needed to draw it) - define tick empty function (not sure if it's going to be useful yet)
Define puzzle solving interface with #solve method

* Remove #tick => solution will be recursive
Move test function to the bottom of the file
Define a timeout queue that receives an array of tuples and execute one after another

* Each tuple consists of a function and a timeout in miliseconds
* Each tuple sets a timeout for the next tuple so we can sync the asyn lulz
No need for all that nesting - simplify it aaaall