set up a layout manager class working on making the components shuffle
about based on the how meny componets and there order.
Refactored RandomButtonLayout to ButtonLayout and extended grid layout.

Made a ButtonLayoutStratagy for ButtonLayout to use
Stratagy added this time round.
Set up Button stratagys 
Todo: define the interface for the ButtonLayout to interact with.
Constructors added so they call the super constructers, and take a
stratagy.
Interface change so that it implements the method with added promaters
from Buttons layout that needs to change depending on the stratagy.
Overrides the interface method
Added call to stratagy so button pannel will work.
Random staratagy is set up currently buttons randomize on resize this is
not prefered and will need to be change.
Posiable changes are boolean in the stratagy that is set probly by a
controll class.
Random staratagy is set up currently buttons randomize on resize this is
not prefered and will need to be change.
Posiable changes are boolean in the stratagy that is set probly by a
controll class.
Tests added to see what happens with each of the layouts.