Nested templates to define `/=` fails with sem
The following are 5 attempts at defining a `/=` operator for a simple vector compiled via

```
nimrod c --run test.nim
```

Changing `ATTEMPT` to 1 through 4 compiles just fine. `ATTEMPT = 0` results in the compilation failure at the bottom. Summary:
- This seems to happen when using double-nested templates.
- The problem seems to be specific to the `/=` operator as `+=`, `-=`, and `*=` define just fine using the double-nested template.

``` nimrod
type TVec2* {.pure, final.}[Scalar] = object
  elts: array[0..1, Scalar]

template defineOpAssign(tvec: expr, op: expr) {.immediate.} =
  proc op*(v: var tvec, w: tvec) {.inline.} =
    for i in 0..1:
      op(v.elts[i], w.elts[i])

const ATTEMPT = 0

when ATTEMPT == 0:
  # FAILS: defining `/=` with template calling template
  # ERROR about sem.nim line 144
  template defineOpAssigns(tvec: expr) {.immediate.} =
    defineOpAssign(tvec, `/=`)

  defineOpAssigns(TVec2)

when ATTEMPT == 1:
  # WORKS: defining `*=` with template calling template
  template defineOpAssigns(tvec: expr) {.immediate.} =
    defineOpAssign(tvec, `*=`)

  defineOpAssigns(TVec2)

when ATTEMPT == 2:
  # WORKS: defining `/=` calling the inner template directly
  defineOpAssign(TVec2, `/=`)

when ATTEMPT == 3:
  # WORKS: inlining inner template
  template defineOpAssigns(tvec: expr) {.immediate.} =
    proc `/=`*(v: var tvec, w: tvec) {.inline.} =
      for i in 0..1:
        `/=`(v.elts[i], w.elts[i])

  defineOpAssigns(TVec2)

when ATTEMPT == 4:
  # WORKS: defining `/=` directly
  proc `/=`*(v: var TVec2, w: TVec2) {.inline.} =
    for i in 0..1:
      `/=`(v.elts[i], w.elts[i])
```

The error is

```
Hint: system [Processing]
lib/system/ansi_c.nim(81, 12) Warning: undeclared conditional symbol; use --symbol to declare it: nimSigSetjmp [User]
lib/system/ansi_c.nim(81, 42) Warning: undeclared conditional symbol; use --symbol to declare it: nimStdSetjmp [User]
lib/system/ansi_c.nim(88, 12) Warning: undeclared conditional symbol; use --symbol to declare it: nimRawSetjmp [User]
lib/system/ansi_c.nim(88, 42) Warning: undeclared conditional symbol; use --symbol to declare it: nimStdSetjmp [User]
Hint: test [Processing]
test.nim(17, 17) Info: instantiation from here
test.nim(15, 18) Info: instantiation from here
test.nim(17, 17) Info: instantiation from here
test.nim(15, 18) Info: instantiation from here
Error: internal error: (filename: compiler/sem.nim, line: 144)
No stack traceback available
```
