Fallback to no tab expansion if not supported

`:io.setops` returns `{error, enotsup}` for those terminals which don't support tab expansion.  We should instead be falling back silently (or we could add a warning) when this happens.
Unfortunately no, that won't work; it looks like if one of them fails the function doesn't do anything:

```
C:\Users\Chris\Documents\elixir>erl
Eshell V6.1  (abort with ^G)
1> io:getopts().
[{binary,false},{encoding,latin1}]
2> io:setopts([{binary, true}, {expand_fun, fun(Str) -> {yes, Str, [""]} end}]).
{error,enotsup}
3> io:getopts().
[{binary,false},{encoding,latin1}]
4>
```

I suppose this is another way to write it:

```elixir
:io.setopts gl, [expand_fun: expand_fun]
:io.setopts gl, [binary: true, encoding: :unicode]
```

The issue is that the last expression is returned [here](https://github.com/elixir-lang/elixir/blob/master/lib/iex/lib/iex.ex#L454), which brings down IEx when there's a bad match.