This patch add the support of RISCV Zca ext
Zca is a subset of C extension instructions that are compatible with the Zc extension.
So this patch implements Zca code generation with reference to the C extension and sets the 2-byte alignment for the Zca extension, just like C extension does.
Why do we need this? Should we make C + Zca be an error in RISCVISAInfo.cpp?