Give all subcommands an optional setup() function that will be called by git-flow in order to let the subcommand initialize its environment.

Give all the branch-type subcommands a default explicit "list" action, too.

Order the functions inside each of the subcommands in a specific order, for consistency:
- usage()
- setup()
- cmd_default()
- cmd_list()
- cmd_help()
- parse_args()
- other commands
diff --git a/git-flow-hotfix b/git-flow-hotfix
index d921762..153c5ea 100644
--- a/git-flow-hotfix
+++ b/git-flow-hotfix
@@ -13,7 +13,7 @@
 #
 
 usage() {
-	echo "usage: git flow hotfix"
+	echo "usage: git flow hotfix [list]"
 	echo "       git flow hotfix start <version> [<base>]"
 	echo "       git flow hotfix finish <version> [<base>]"
 	# TODO
@@ -28,21 +28,16 @@
 	#echo "--push      Push to the origin repo when finished"
 }
 
-parse_args() {
-	VERSION="$1"
-	BASE="${2:-$MASTER_BRANCH}"
-	if [ "$VERSION" = "" ]; then
-		echo "Missing argument <version>."
-		usage
-		exit 1
-	fi
+# setup will always be called before the actual cmd_* functions
+setup() {
 	PREFIX=$(git config --get gitflow.prefix.hotfix || echo hotfix/)
-	BRANCH=$PREFIX$VERSION
 }
 
 cmd_default() {
-	# TODO: Refactor getting this prefix into a general function
-	PREFIX=$(git config --get gitflow.prefix.hotfix || echo hotfix/)
+	cmd_list "$@"
+}
+
+cmd_list() {
 	HOTFIX_BRANCHES="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")"
 	if [ -z "$HOTFIX_BRANCHES" ]; then
 		warn "No hotfix branches exist."
@@ -56,6 +51,18 @@
 	exit 0
 }
 
+parse_args() {
+	VERSION="$1"
+	BASE="${2:-$MASTER_BRANCH}"
+	if [ "$VERSION" = "" ]; then
+		echo "Missing argument <version>."
+		usage
+		exit 1
+	fi
+	PREFIX=$(git config --get gitflow.prefix.hotfix || echo hotfix/)
+	BRANCH=$PREFIX$VERSION
+}
+
 cmd_start() {
 	parse_args "$@"