Implement virStorageVolResize by adding resize to StorageVol

This allows us to resize storage pool volumes.
Implement virDomainUndefineFlags by overloading the existing undefine method

We divert from the one-on-one mapping rule here by not adding the undefineFlags() method
Overload Domain.snapshotListNames with a method that has an addition flags argument.

This commit also adds virDomainSnapshotListFlags which is used by various snapshot
related methods.
Overload Domain.snapshotCreateXML with a method that has a argument for flags

The original implementation doesn't have a argument for passing flags. It is
however still there for backwards compatibility.
Implement virDomainMigrate2 and use it for a new migrate method.

virDomainMigrate2 adds the dxml argument which makes it possible
to alter host-specific portions of the domain XML that will be
used on the destination host.

The original migrate method still uses virDomainMigrate for backwards
compatibility reasons.
Implement and use virDomainMigrateToURI2 by overloading migrateToUri

The new migrateToUri method has the dxml argument which has been added
in virDomainMigrateToUri2.

The original migrateToUri method still uses virDomainMigrateToUri to
be sure we don't break backwards compatibility.