Form actions improved

This improves on #182 (#114), and fixes issues with Symfony's form validation and issues with "extra fields" being added.

It also brings a better implementation based on children and alternate syntax.

The syntax used on the form objects is:
```
  ->add('buttons', 'form_actions', [
      'buttons' => [
          'save' => ['type' => 'submit', 'options' => ['label' => 'button.save']],
          'cancel' => ['type' => 'button', 'options' => ['label' => 'button.cancel']],
      ]
  ]);
```
or
```
  ->add('buttons', 'form_actions');

$builder->get('buttons')->add('save', 'submit', ['label' => 'button.save']);
$builder->get('buttons')->add('cancel', 'button', ['label' => 'button.cancel']);
```

The new syntax come around because using children means symfony can still keep an eye the fields, hence no validation errors, this also means that we do not need to store extra variables with the buttons, just add them as children and change how symfony prints the widget.

I also updates the tests to reflect these changes.