Change piece moving event to keydown

* keydown events keep triggering when the key is hold
Remove describe/beforeEach as they were used only for one test
Fit piece in a valid spot when rotating

* Because rotation is clockwise, when piece is close to the right
  boundarie, rotating it might set it out of boundaries
* Create Board#isPieceOutOfBoundaries that checks if piece is out of
  bounds
* Check if piece will overlap or go out of bounds before rotating
* Try to fit piece one square to the left as many times as its width
  move it and rotate it if a valid spot is found