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/tools/create_userrc.sh b/tools/create_userrc.sh
index cd5a1c9..47da334 100755
--- a/tools/create_userrc.sh
+++ b/tools/create_userrc.sh
@@ -11,8 +11,7 @@
 
 ACCOUNT_DIR=./accrc
 
-display_help()
-{
+function display_help {
 cat <<EOF
 
 usage: $0 <options..>
@@ -151,7 +150,7 @@
 fi
 
 
-function add_entry(){
+function add_entry {
     local user_id=$1
     local user_name=$2
     local tenant_id=$3
@@ -213,7 +212,7 @@
 }
 
 #admin users expected
-function create_or_get_tenant(){
+function create_or_get_tenant {
     local tenant_name=$1
     local tenant_id=`keystone tenant-list | awk '/\|[[:space:]]*'"$tenant_name"'[[:space:]]*\|.*\|/ {print $2}'`
     if [ -n "$tenant_id" ]; then
@@ -223,7 +222,7 @@
     fi
 }
 
-function create_or_get_role(){
+function create_or_get_role {
     local role_name=$1
     local role_id=`keystone role-list| awk '/\|[[:space:]]*'"$role_name"'[[:space:]]*\|/ {print $2}'`
     if [ -n "$role_id" ]; then
@@ -234,7 +233,7 @@
 }
 
 # Provides empty string when the user does not exists
-function get_user_id(){
+function get_user_id {
     local user_name=$1
     keystone user-list | awk '/^\|[^|]*\|[[:space:]]*'"$user_name"'[[:space:]]*\|.*\|/ {print $2}'
 }