BuildSet now has a representation

I had Zuul Scheduler report warning messages such as:

zuul.Scheduler: Build set <zuul.model.BuildSet object at 0x1a9a310> is
not current

Which is not very meaningful.  This adds a __repr__ to BuildSet which
shows up:
- the QueueItem representation
- number of builds in the set
- merge state

The merge states are internally stored using integer constants.  I have
duplicated the information in a dict to lookup the int as a meaningful
string.  That is not pretty :(

Change-Id: I0e087e4cb3f4c1da4ef40d0805793f737af1765e
Merge "BuildSet now has a representation"