Refactor: controller: Use GQueue for FSA message queue
This makes more semantic sense, and it avoids expensive linked list
traversals to append to the message queue. g_queue_push_tail() jumps
straight to the end.
There are some opportunities to use g_queue_foreach() and
g_queue_free_full(). I've avoided that for now and used the queue head
as a list directly, to minimize the size of this diff.
Signed-off-by: Reid Wahl <nrwahl@protonmail.com>