Square:
Fixed a bug with the square's size
Added support functions to calculate relations between squares
Added ability to copy square from other square

SquaresContainer:
Moved MAX_AVAILABLE_SQUARES to SquaresApp and made SquaresContainer support custom size
Added ability to promote square
Moved square index validation to function
Changed reorderSquaresFrom signature as the second parameter was redundant

Menu:
Changed the way menu options are enabled/disabled to a more sensible way

Added SquareApp class for future use.