Make aggregate methods use new-world objects

This makes the add_aggregate_host() and remove_aggregate_host()
methods on compute manager use new-world objects. It introduces
a new compatibility decorator since object_compat() is specifically
tailored to instance methods, which makes sharing it really
complex and ugly.

Note that we still convert the aggregates back to primitive form
before passing to the drivers, which will be removed once we teach
the drivers to use/take aggregate objects directly (coming next).

Related to blueprint compute-manager-objects

Change-Id: I241876b6b2ebdb2313e472c043fcc73c6ddd0e1a
Merge "Make aggregate methods use new-world objects"