Allow `button_to` to accept button + extra options

After this commit, `button_to` behaves more coherently with `button`
in that `:context`, `:size` and `:layout` options can be used to
modify the appearance of the button, while other options are passed
directly to the button element.