CPUFeatures tests.

These check that the Assembler tests the correct feature sets for each
instruction. Both positive and negative tests are included.

These tests do not cover the MacroAssembler, but the MacroAssembler checks are
almost entirely covered by the Assembler checks.

Change-Id: I73c2bdf0a62def40569e5e604b447cac0f07a3dc
diff --git a/src/cpu-features.h b/src/cpu-features.h
index a0475cc..f3b3b4b 100644
--- a/src/cpu-features.h
+++ b/src/cpu-features.h
@@ -175,6 +175,10 @@
   // checking: `Has(...)` returns true regardless of the argument.
   static CPUFeatures All();
 
+  // Construct an empty CPUFeatures. This is equivalent to the default
+  // constructor, but is provided for symmetry and convenience.
+  static CPUFeatures None() { return CPUFeatures(); }
+
   // The presence of these features was assumed by version of VIXL before this
   // API was added, so using this set by default ensures API compatibility.
   static CPUFeatures AArch64LegacyBaseline() {