Alias fields gets lost when doing union
I added a test-case that I think is equivalent to your example. It is passing for me: 909b371123a73ea00b7db18bbdb870083286d603

Here's the test-case code:

```python
    def test_union_with_join(self):
        u1, u2 = [User.create(username='u%s' % i) for i in (1, 2)]
        for u, ts in ((u1, ('t1', 't2')), (u2, ('t1',))):
            for t in ts:
                Tweet.create(user=u, content='%s-%s' % (u.username, t))

        q1 = (User
              .select(User, Tweet)
              .join(Tweet, on=(Tweet.user == User.id).alias('tweet')))
        q2 = (User
              .select(User, Tweet)
              .join(Tweet, on=(Tweet.user == User.id).alias('tweet')))

        with self.assertQueryCount(1):
            self.assertEqual(
                sorted([(user.username, user.tweet.content) for user in q1]),
                [('u1', 'u1-t1'), ('u1', 'u1-t2'), ('u2', 'u2-t1')])

        uq = q1.union_all(q2)
        with self.assertQueryCount(1):
            result = [(user.username, user.tweet.content) for user in uq]
            self.assertEqual(sorted(result), [
                ('u1', 'u1-t1'),
                ('u1', 'u1-t1'),
                ('u1', 'u1-t2'),
                ('u1', 'u1-t2'),
                ('u2', 'u2-t1'),
                ('u2', 'u2-t1'),
            ])
```

Am I missing something? Travis-CI build including the above patch: https://travis-ci.org/coleifer/peewee/builds/377071024 (passed) Sorry. I feel really stupid for not checking which peewee version I was using. 

I just upgraded to the latest from peewee version 3.2.3 and it works. 

Yep...I'm an idiot. No need to apologize, this was fixed only recently.
I wrote a little test to show my problem:

```python
from peewee import Model, SqliteDatabase, CharField, ForeignKeyField

database = SqliteDatabase(':memory:')

class BaseModel(Model):
    class Meta:
        database = database

class Tournament(BaseModel):
    name = CharField()

class Result(BaseModel):
    tournament = ForeignKeyField(Tournament)

database.create_tables([Tournament, Result])
t = Tournament.create(name='Tournament1')
Result.create(tournament=t)

q1 = Tournament.select(Tournament, Result).join(Result, on=(Result.tournament==Tournament.id).alias('result'))
q2 = Tournament.select(Tournament, Result).join(Result, on=(Result.tournament==Tournament.id).alias('result'))

# this works fine
for tournament in q1:
    print tournament.result

# this works fine
for tournament in q2:
    print tournament.result

# raises "AttributeError: 'Tournament' object has no attribute 'result'"
for tournament in (q1+q2):
    print tournament.result
```

I want to run a union of two queries that each have a join that results in a new field that holds the joined row. Unfortunately the queries are not returning the new field when I do a union but it works fine running the queries separately. Is this a bug?

Thanks