Add support for BTI.

Add support for Branch Target Identification. This also adds an extension to
Bind() to indicate which instruction should be used as the landing pad - one of
the BTIs or a PAuth instruction.

The simulation support is partial; memory may only be guarded globally or not at
all.

Change-Id: Idb54826dcf866f1e677fe1579d05987621eae721
diff --git a/test/test-api.cc b/test/test-api.cc
index 9b3454e..f033271 100644
--- a/test/test-api.cc
+++ b/test/test-api.cc
@@ -390,7 +390,9 @@
       // Armv8.3
       "PAuth, PAuthQARMA, PAuthGeneric, PAuthGenericQARMA, JSCVT, Fcma, RCpc, "
       // Armv8.4
-      "RCpc (imm), FlagM, USCAT, FHM, DIT",
+      "RCpc (imm), FlagM, USCAT, FHM, DIT, "
+      // Armv8.5
+      "BTI",
       CPUFeatures::All());
 }