This adds most of the FP16 codegen support, but these areas need further work:
- FP16 literals and immediates are not properly supported yet (e.g. literal pool needs work),
- instructions that are generated from intrinsics (e.g. vabs) haven't been added.
This will be addressed in follow-up patches.