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/exercises/aggregates.sh b/exercises/aggregates.sh
index d223301..01d548d 100755
--- a/exercises/aggregates.sh
+++ b/exercises/aggregates.sh
@@ -57,7 +57,7 @@
 AGGREGATE2_NAME=test_aggregate_$RANDOM
 AGGREGATE_A_ZONE=nova
 
-exit_if_aggregate_present() {
+function exit_if_aggregate_present {
     aggregate_name=$1
 
     if [ $(nova aggregate-list | grep -c " $aggregate_name ") == 0 ]; then
diff --git a/exercises/client-args.sh b/exercises/client-args.sh
index e79774f..b360f1e 100755
--- a/exercises/client-args.sh
+++ b/exercises/client-args.sh
@@ -154,7 +154,7 @@
 # Results
 # =======
 
-function report() {
+function report {
     if [[ -n "$2" ]]; then
         echo "$1: $2"
     fi
diff --git a/exercises/client-env.sh b/exercises/client-env.sh
index 6c6fe12..d955e4d 100755
--- a/exercises/client-env.sh
+++ b/exercises/client-env.sh
@@ -165,7 +165,7 @@
 # Results
 # =======
 
-function report() {
+function report {
     if [[ -n "$2" ]]; then
         echo "$1: $2"
     fi
diff --git a/exercises/neutron-adv-test.sh b/exercises/neutron-adv-test.sh
index a9199e6..0a24fe9 100755
--- a/exercises/neutron-adv-test.sh
+++ b/exercises/neutron-adv-test.sh
@@ -20,7 +20,7 @@
 set -o errtrace
 
 trap failed ERR
-failed() {
+function failed {
     local r=$?
     set +o errtrace
     set +o xtrace
@@ -395,7 +395,7 @@
 # Usage and main
 # --------------
 
-usage() {
+function usage {
     echo "$0: [-h]"
     echo "  -h, --help              Display help message"
     echo "  -t, --tenant            Create tenants"
@@ -408,7 +408,7 @@
     echo "  -T, --test              Test functions"
 }
 
-main() {
+function main {
 
     echo Description