Added rotation, made code compliant with Tetris Guidelines, cleaned up

Changes:
-Rotation is now functional, but collision detection at the moment the rotation is performed is not yet implemented (this can cause unintended gamestates of course).
-Rotational axes, spawn locations, and tetromino randomization methods now conform to what is known of the official Tetris Guidelines.
-Additional parametrization (including the solid borders) and generalization were included.
-Variables were renamed for clarity.
-Functions were reorganized for clarity, and piece randomization functions were added.

Notices:
-This  version of the code includes a global 3D array to temporarily skirt the development complications of a potentially necessary tetrominoes.h, which would just include that 3D array.
-This version of the code includes a placeholder menu. It also includes test input handling for Windows, which can be enabled in Windows by de-commenting everything below the two "/*Windows:*/" tags and commenting everything below the "/*Linux:*/" tags, as well as de-commenting the body of getLeftInput(). The keybindings are as follows:
A - shift left
D - shift right
S - "soft drop" (shift one space downward)
W - "hard drop" (shift all the way downward and spawn a new piece)
Q - spin counter-clockwise
E - spin clockwise

To do:
-Overhaul of checkLines (which is not presently called) for line clearing and scoring.
-Managing collisions detected when the player rotates the piece ("wall kicks", etc.)
-Try to simplify the body of tetris() and shorten parameter lists.