* common/aarch64: Allow generic code generator types
Use the templated `BasicCodeGenerator` type rather than the specialized
`CodeGenerator` type.
Allows `VectorCodeGenerator` to work with these functions.
* common/aarch64: Add `VectorCodeGenerator` to `CallFarFunction`
`VectorCodeGenerator` will always do far-calls since we cannot resolve any absolute addresses here.
* shader_jit_a64: Implement position-independent VectorCodeGenerator
Generates more position-independent assembly to allow for code to be
generated within a resizable vector before copying into executable
memory, allowing for more compact memory allocations and usage rather
than a statically defined worst-case for all-cases.
`VectorCodeGenerator` will need to generate position-independent code
rather than use absolute addresses. Assumes all far function calls in the
case of `VectorCodeGenerator` to use absolute addresses rather than
potentially use a relative `BL` branch after memory relocation.