We have a lot of duplicated code paths now that we optimize both sends with blocks and sends without blocks. Let's merge the HIR instructions SendWithBlock and Send. A PR will need to:
- Merge both instructions into Send
- Make sure all the SendWithoutBlock specializations appropriately check both
VM_CALL_ARGS_BLOCKARG and blockiseq
- Have the codegen call
rb_vm_opt_send_without_block if we definitely don't have a block (see above) and rb_vm_send otherwise
This should de-dup type_specialize and optimize_c_calls.