Add a FeatureID field to Building, and use that to determine whether or not to add as a building.

Also, some fixes (not exactly performance improvements).
Redefine building1 and building2 to store the actual buildings themselves.
Pass in NULL for empty holes and construction of CoordinateSequence.
Passing in a copy of the coordinate fixes validation bugs.
If none of the points on the building are inside the BBox specified, don't add the building.

Also, delete the Building and CoordinateSequence objects if they aren't added to the list.
Make operator== a free function, and implement qHash
Add a method to combine the addresses and buildings.
Fix error in operator== for Address.
Remove Addresses and Buildings that have been merged from the main list.
Initialize CoordinateSequence with a size of 0, and specify dimensions.
Fix typo in log output.
Update outputChangeFile() and writeXMLFile() to write out the buildings and the building-addresses.

The file is no longer split when it crosses 5000 nodes.