Pass `panel_row` extra params to wrapping <div>

Before this commit, the `panel_row` helper ignored unknown options.
For instance the code:

```rhtml
<%= panel_row column_class: 'col-sm-4', class: 'important', id: 'id' do %>
  <%= panel 'Panel #1' %>
<% end %>
```

would simply generate the following HTML

```html
<div class="row">
  <div class="col-sm-4"><div class="panel panel-default"><div class="panel-body">Panel #1</div></div></div>
</div>
```

ignoring the `:class` and `:id` parameter.
After this commit, the result is:

```html
<div class="important row" id="id">
  <div class="col-sm-4"><div class="panel panel-default"><div class="panel-body">Panel #1</div></div></div>
</div>
```

which should partially mitigate #39.

---

This commit also reduces public API methods from PanelRowHelper

Before this PR, including `bh` in an app would include more methods
than necessary for panel rows: methods like `capture_panel_row` that
should only be accessed privately.

This PR extracts those private methods into a new Button class
that includes all the business logic to render elements and edit
attributes (e.g., attach classes), leaving the helper cleaner.