This adds generic regbankselect support for G_ASSERT_ZEXT.
It inherits whatever register bank the source was given, always, on all targets.
Register bank selection traverses the blocks in a function in reverse post-order, and then traverses the instructions in each block top-down. So, I think that at the point where we run into these, the source register bank should be decided.
This also adds some AArch64-specific code which makes sure we can handle G_ASSERT_ZEXT when deciding on register banks for G_STORE, G_PHI, ... etc.
I think we should assert here that we expect G_ASSERT_ZEXT, because I suppose in future more hint instructions may not have the same form as copies (the doc didn't specify that hints in general can always be treated as copies).