Parameterize disk_cachemodes

The current manifests don't expose a way for end users to set
the disk_cachemodes directive in nova.conf, which can be useful
for improving disk performance.  This patch adds a parameter
allowing users to specify a list of values to be written in
to the disk_cachemodes setting.  The default value is an empty
list, which will cause the disk_cachemodes setting to be removed
entirely from nova.conf (thus matching the Nova default and
current behavior).

This patch is based on 0a5d6568f070d193b604513f194c966cc224a86b
but is slightly modified to account for a change in how the
nova.conf file is organized between Havana and Icehouse
(some libvirt params were moved from the [DEFAULT] section
to the new [libvirt] section in Icehouse).

Change-Id: I9173ef79e4e573515f290734535907794dda7dbf
(cherry picked from commit 0a5d6568f070d193b604513f194c966cc224a86b)