As RISC-V spec supports multiple extension version, refactor the SubtargetFeatures and RISCVISAInfo to support it.
RISCVISAInfo can parse arch string like -march with extension version, but related SubtargetFeatures don't contain version info in llvm side. For example, SubtargetFeature name is "m" when enable 'm' extension with passing `-mattr=+m`. After this patch, it would be `-mattr=+m2p0`.
It also handles arch string with version number of attribute section in obj file, including assemble and dis-assemble process.
This is the whole picture of change. Because the testcase change is too huge to review, split the source change without testcase into https://reviews.llvm.org/D115923.