I18n.locale= doesn't care about junk values?

The following code runs, surprisingly, with no exceptions:

```ruby
I18n.locale = ["random", "array"]
I18n.locale = Class
I18n.locale = File.new("/dev/null")
```

The cause of this is `rescue nil`. What was the original intent with it? The troubling commit b2ae8dec dates back 4 years ago.

```ruby
@locale = locale.to_sym rescue nil
```

I've made a pull request that makes it handle only nils. Also, it doesn't swallow any errors produced by to_sym anymore.