Parameterize cpu_mode

The libvirt cpu_mode setting in nova.conf currently isn't exposed
via the compute::libvirt class, but can be very useful in nested
virtualization situations (as are common in development labs).
The nova default value for the cpu_type parameter if left unspecified
is dependent on the value of the virt_type setting, and both
the virt_type and cpu_mode settings exist within the [libvirt]
section of nova.conf.  This patch adds a parameter allowing users
to set cpu_type with appropriate defaults based on the value
of the libvirt_virt_type parameter.

Based on Change-Id: I0136f15621f616787aba1bbcbf68208bc8f9a1b1 but
not a clean cherry-pick due to a change in the way nova.conf
is organized between Havana and Icehouse.

Change-Id: I0136f15621f616787aba1bbcbf68208bc8f9a1b1