Fullscreen/bh — pull request #48 by claudiob (2014-11-07 02:00:20+00:00)
Title: Pass `panel` extra params to the wrapping <div>

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

```rhtml
<%= panel 'content', class: 'important', id: 'alert', data: {name: 'name'} %>
```

would simply generate the following HTML

```html

With extra params

```

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

```html

With extra params

```

which should partially mitigate #39.

---

This commit also reduces public API methods from PanelHelper

Before this PR, including `bh` in an app would include more methods
than necessary for panels: methods like `panel_string` or
`panel_class`, 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.