Started support for buildings that aren't houses

Houses are now Buildings, and a new class called House will handle any
special House logic if required (probably not). The code is a bit clearer
now, and it's possible to specify the number of max/min number of rooms in
a more intuitive way rather than in terms of partitions.

More random.randint stuff replaced by random.choice.