Alias should have a public `name` property
Added `name` property. Hi @coleifer , thanks for adding these.

I'm writing a library that depends on peewee.

Do you think it would be sensible to simply require the new 3.14.10 version of peewee, and use the new `Alias.name`, `ModelSelect.selected_columns`, `ModelSelect.left_outer_join`, etc. directly? 

My only concern is if a user wants to use an older version of peewee and will not want to use my framework. I'm not sure if this is a valid concern today with the popularity of virtual environments. 

If it is a valid concern, is there anything wrong with my library simply monkey patching these attributes onto peewee? I don't attempt to collect any stats on what versions people are running or downloading, so it's hard to say. I don't make any attempt to support people on 2.x, but as far as whether people use the latest and upgrade frequently, I couldn't say. I think monkeypatching is probably just fine if you insist on using the new apis.
I believe that the only way to check the name of an `Alias` object is to access the private `._alias` attribute.

May we please add a public accessor to this?

I think it should be `name`, just like the `Field` API.

This is what I have to do now, which is a bit inconvenient:

```
columns = [
    Tweet.id,
    Tweet.content,
    User.username.alias('who')
]

# ...

for column in columns:
    if isinstance(column, Field):
        print(column.name)
    elif isinstance(column, Alias):
        print(column._alias)

```

---

It would be better if Alias had a `name`:

```
for column in columns:
    print(column.name)
```

Thank you