Improve ButtonGroup with attributes

This PR allows inserting custom attributes on `Button` inside a `ButtonGroup` if they are converted to radio or checkbox.

```
ButtonGroup::radio([
    Button::normal('Button 1')->withAttributes(['name' => 'input-name', 'value' => '1']),
    Button::normal('Button 2')->withAttributes(['name' => 'input-name', 'value' => '2']),
    Button::normal('Button 3')->withAttributes(['name' => 'input-name', 'value' => '3']),
    Button::normal('Button 4')->withAttributes(['name' => 'input-name', 'value' => '4']),
])->small(); 
```