Move Linux build rule to its own folder, update to v5.4.2

The Linux build rule was previously in //third_party/ which meant it was
built in the same folder as other third-party projects. Move its build
rule to its folder to avoid clashes.

Also update Linux to v5.4.2 and update submodule refs.

Change-Id: I32598092c3ef400677ccdb22d0b92f68de113d39
diff --git a/build/linux/linux.gni b/build/linux/linux.gni
index 5712932..bb50aa6 100644
--- a/build/linux/linux.gni
+++ b/build/linux/linux.gni
@@ -56,10 +56,12 @@
   defconfig_target = "${target_name}__defconfig"
   prebuilt_target = "${target_name}__prebuilt"
 
+  kernel_dir = "./"
+
   # Args to build/make.py to start the Linux build.
   shared_args = [
     "--directory",
-    rebase_path(invoker.kernel_dir),
+    rebase_path(kernel_dir),
 
     # TODO: Build with toolchain cc instead of a hardcoded one.
     "CC=" + rebase_path("//prebuilts/linux-x64/clang/bin/clang"),
@@ -85,7 +87,7 @@
   # Subtarget which generates a depfile with all files in the Linux tree
   # and gets invalidated if any of them change.
   source_dir(source_target) {
-    path = invoker.kernel_dir
+    path = kernel_dir
   }
 
   # Subtarget which runs `defconfig` and `modules_prepare`. Used by targets