Add cache for get_microversion() against Nova
Add cache for get_microversion() against Nova

Actions "Lock" and "Unlock" of instance on instances table are calling
api.nova.is_feature_available() to check if the feature is supported
by current Nova server. Unfortunately, the function get_microversion()
called by is_feature_available() is not cached, which is causing about
40 unnecesary REST API calls. If the Nova's version is under Mitaka,
it could be even worse, about 80 unnecesary API calls, see
openstack_dashboard/api/nova.py#L60 and
novaclient/v2/versions.py#L47 for more details.

Closes-Bug: #1721423

Change-Id: Ie96b1a35e379d4cf407bfd53b1ee734178f9cb07

NeCTAR-RC/horizon,noironetworks/horizon,openstack/horizon,noironetworks/horizon,ChameleonCloud/horizon,noironetworks/horizon,NeCTAR-RC/horizon,NeCTAR-RC/horizon,ChameleonCloud/horizon,NeCTAR-RC/horizon,ChameleonCloud/horizon,noironetworks/horizon,openstack/horizon,openstack/horizon,ChameleonCloud/horizon,openstack/horizon