Variant negotiation

Allow setting `request.variant` as an array - an order in which they will be rendered.

For example:

```ruby
request.variant = [:tablet, :phone]

respond_to do |format|
  format.html.none
  format.html.phone # this gets rendered
end
```

/cc @dhh @jeremy