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/tf_fuzz.cpp b/tf_fuzz/tfz-cpp/tf_fuzz.cpp
index 17c1881..1dc95ae 100644
--- a/tf_fuzz/tfz-cpp/tf_fuzz.cpp
+++ b/tf_fuzz/tfz-cpp/tf_fuzz.cpp
@@ -5,22 +5,20 @@
  *
  */
 
+#include "tf_fuzz.hpp"
+
+#include <ext/alloc_traits.h>
 #include <ctime>  // to seed random, if seed not passed in
 #include <string>
 #include <vector>
 #include <iostream>
-#include <cstdlib>  // for srand() and rand()
-#include <cstdio>  // for template lex&yacc input file
-#include "class_forwards.hpp"
+#include <fstream>
+
 #include "boilerplate.hpp"
-#include "gibberish.hpp"
-#include "compute.hpp"
 #include "string_ops.hpp"
 #include "data_blocks.hpp"
 #include "psa_asset.hpp"
 #include "find_or_create_asset.hpp"
-#include "template_line.hpp"
-#include "tf_fuzz.hpp"
 #include "sst_asset.hpp"
 #include "crypto_asset.hpp"
 #include "psa_call.hpp"