ART: Make InstructionSet an enum class and add kLast.

Adding InstructionSet::kLast shall make it easier to encode
the InstructionSet in fewer bits using BitField<>. However,
introducing `kLast` into the `art` namespace is not a good
idea, so we change the InstructionSet to an enum class.
This also uncovered a case of InstructionSet::kNone being
erroneously used instead of vixl32::Condition::None(), so
it's good to remove `kNone` from the `art` namespace.

Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Change-Id: I6fa6168dfba4ed6da86d021a69c80224f09997a6
diff --git a/patchoat/patchoat.cc b/patchoat/patchoat.cc
index edce5b4..ae82d72 100644
--- a/patchoat/patchoat.cc
+++ b/patchoat/patchoat.cc
@@ -129,7 +129,7 @@
 
   TimingLogger::ScopedTiming t("Runtime Setup", timings);
 
-  CHECK_NE(isa, kNone);
+  CHECK_NE(isa, InstructionSet::kNone);
   const char* isa_name = GetInstructionSetString(isa);
 
   // Set up the runtime
@@ -807,7 +807,7 @@
 
   // cmd line args
   bool isa_set = false;
-  InstructionSet isa = kNone;
+  InstructionSet isa = InstructionSet::kNone;
   std::string input_image_location;
   std::string output_image_filename;
   off_t base_delta = 0;
@@ -824,7 +824,7 @@
       isa_set = true;
       const char* isa_str = option.substr(strlen("--instruction-set=")).data();
       isa = GetInstructionSetFromString(isa_str);
-      if (isa == kNone) {
+      if (isa == InstructionSet::kNone) {
         Usage("Unknown or invalid instruction set %s", isa_str);
       }
     } else if (option.starts_with("--input-image-location=")) {