Enforce function declaration format in bash8

Check that function calls look like ^function foo {$ in bash8, and fix
all existing failures of that check.  Add a note to HACKING.rst

Change-Id: Ic19eecb39e0b20273d1bcd551a42fe400d54e938
diff --git a/lib/nova_plugins/hypervisor-libvirt b/lib/nova_plugins/hypervisor-libvirt
index a550600..b39c57c 100644
--- a/lib/nova_plugins/hypervisor-libvirt
+++ b/lib/nova_plugins/hypervisor-libvirt
@@ -31,13 +31,13 @@
 # ------------
 
 # clean_nova_hypervisor - Clean up an installation
-function cleanup_nova_hypervisor() {
+function cleanup_nova_hypervisor {
     # This function intentionally left blank
     :
 }
 
 # configure_nova_hypervisor - Set config files, create data dirs, etc
-function configure_nova_hypervisor() {
+function configure_nova_hypervisor {
     if is_service_enabled neutron && is_neutron_ovs_base_plugin && ! sudo grep -q '^cgroup_device_acl' $QEMU_CONF; then
         # Add /dev/net/tun to cgroup_device_acls, needed for type=ethernet interfaces
         cat <<EOF | sudo tee -a $QEMU_CONF
@@ -135,7 +135,7 @@
 }
 
 # install_nova_hypervisor() - Install external components
-function install_nova_hypervisor() {
+function install_nova_hypervisor {
     if is_ubuntu; then
         install_package kvm
         install_package libvirt-bin
@@ -165,13 +165,13 @@
 }
 
 # start_nova_hypervisor - Start any required external services
-function start_nova_hypervisor() {
+function start_nova_hypervisor {
     # This function intentionally left blank
     :
 }
 
 # stop_nova_hypervisor - Stop any external services
-function stop_nova_hypervisor() {
+function stop_nova_hypervisor {
     # This function intentionally left blank
     :
 }