tf_fuzz: refactor includes to only include what is needed

* Refactor Makefile to automatically gather prerequisites.

* Change the includes (using include-what-you-need) so that files only
  include the specific headers they need. Many includes are also now
  inside the .hpp files instead of the .cpp files.

  This improves editor support: previously, external symbols in .hpp
  files would not be resolved by clangd due to .hpp files not having any
  imports.

Change-Id: Iece03f81c35aa43ac026aaeb49b87d2c4acf07cd
Signed-off-by: Nik Dewally <Nik.Dewally@arm.com>
diff --git a/tf_fuzz/tfz-cpp/utility/variables.hpp b/tf_fuzz/tfz-cpp/utility/variables.hpp
index 886acc3..2c679ef 100644
--- a/tf_fuzz/tfz-cpp/utility/variables.hpp
+++ b/tf_fuzz/tfz-cpp/utility/variables.hpp
@@ -1,12 +1,13 @@
 /*
- * Copyright (c) 2020, Arm Limited. All rights reserved.
+ * Copyright (c) 2024, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  *
  */
 
 #include <string>
-#include <vector>
+
+#include "find_or_create_asset.hpp"
 
 /* This file defines information to track regarding variables in the generated test
    code. */
@@ -14,12 +15,6 @@
 #ifndef VARIABLES_HPP
 #define VARIABLES_HPP
 
-/* This project's header files #including other project headers quickly becomes
-   unrealistically complicated.  The only solution is for each .cpp to include
-   the headers it needs.  However these in particular are mostly axiomatic:  Not
-   dependent upon other classes. */
-
-
 using namespace std;
 
 
@@ -56,4 +51,3 @@
 
 
 #endif // VARIABLES_HPP
-