fix Issue 12979 - Nothrow violation error is hidden by inline assembler

- deprecate using unattributed asm in attributed functions

- add explicit attributes on asm statments (unverified by compiler)

  asm pure nothrow @nogc @trusted {
    //...
  }

- added new CompoundAsmStatement because the parser
  already splits asm blocks into many AsmStatements

> asm statement, not asm block, as we should consistently refer to things with the same phrase.

I mixed up the wording because `AsmStatement` in the compiler is actually a single asm instruction.