Implement CPUFeatures::InferFromOS for Linux.

This also includes CPUFeatures::InferFromIDRegisterEmulation since that is the
mechanism used for recent features in Linux.

This has been checked against the documented behaviours, but has not been tested
for many of the recent features.

Change-Id: I94d9ee05f225f12f5eb72f9d30f23ec236a38d53
diff --git a/test/test-utils.h b/test/test-utils.h
index ca582ac..ff4a3bb 100644
--- a/test/test-utils.h
+++ b/test/test-utils.h
@@ -33,7 +33,9 @@
 
 namespace vixl {
 
-void ExecuteMemory(byte* buffer, size_t size, int offset = 0);
+// In native (non-Simulator) environments, call a function at buffer +
+// byte_offset. The function is given no arguments and returns no results.
+void ExecuteMemory(byte* buffer, size_t size, int byte_offset = 0);
 
 }  // namespace vixl