Add instance_extra table and related objects

This patch adds the table for storing the instance NUMA topology, as
adding it on the model itself as a text field is thought to be bad for
perfomance.

We need to add it as scheduling based on it and tracking resources
proves to be impossible otherwise as we would have to rely on
re-calculating it from data stashed in system_metadata table, which is
deemed even more inefficient if it needs to be done in a periodic task.

We add the objects so that we can make sure that data is versioned, and
the relevant database models methods and the migration for adding the
table.

Blueprint: virt-driver-numa-placement
Change-Id: I724ed7089044177ec4fecdf4fdcefad96a2466b6
Merge "Add instance_extra table and related objects"