Remove an is_a check
Don't pass nil to fails_with?
Rename compiler attribute to name
Move compiler failure matching logic into failure object
Use a separate class for GNU compiler failures

major_version is now only used internally by the failure object