Change cas to nqp::cas in Lock::Async.lock
Change cas to nqp::cas in Lock::Async.lock

This appears to at least work around the problems as reported in:
  https://github.com/MoarVM/MoarVM/issues/1237

With this fix the t/spec/S17-promise/lock-async-stress2.t test
runs more than 1000x without breaking.

Reasons as to why this makes a difference:
- by using nqp::ops, the multi dispatch cache is not involved
  so it cannot be corrupted
- by using nqp::ops, something in the timing changes, making the
  window of opportunity so small that it would be even more unlikely
  that a crash would occur

tbrowder/rakudo,softmoth/rakudo,rakudo/rakudo,softmoth/rakudo,tbrowder/rakudo,rakudo/rakudo,nbrown/rakudo,tbrowder/rakudo,tony-o/rakudo,rakudo/rakudo,tony-o/rakudo,tony-o/rakudo,salortiz/rakudo,salortiz/rakudo,tbrowder/rakudo,MasterDuke17/rakudo,salortiz/rakudo,softmoth/rakudo,MasterDuke17/rakudo,tony-o/rakudo,salortiz/rakudo,rakudo/rakudo,salortiz/rakudo,tony-o/rakudo,tbrowder/rakudo,labster/rakudo,salortiz/rakudo,tbrowder/rakudo,rakudo/rakudo,nbrown/rakudo,MasterDuke17/rakudo,softmoth/rakudo,softmoth/rakudo,MasterDuke17/rakudo,labster/rakudo,nbrown/rakudo,nbrown/rakudo,labster/rakudo,MasterDuke17/rakudo,rakudo/rakudo,labster/rakudo,nbrown/rakudo,MasterDuke17/rakudo,labster/rakudo,tony-o/rakudo,labster/rakudo,nbrown/rakudo