Refactored RandomButtonLayout to ButtonLayout and extended grid layout.

Made a ButtonLayoutStratagy for ButtonLayout to use