Mark line number after emitting children.

Marking the line number before emitting children leads to incorrect line numbers
when a runtime error occurs.  For example, when

 (foo bar
      baz)

is emitted the compiler will visit the line number for the expression, then emit
the children expressions ('bar' and 'baz') which will mark their own line
numbers, then come back and emit the invoke bytecode for 'foo', but since the
last line number to be marked was that of 'baz', if 'foo' throws an exception
the line number of 'baz' will be reported instead of the line number for the
expression as a whole.

This same issue was being manifested with special forms and inlined functions,
and was especially bad in the case of the threading macro '->', because it is
usually spread across several lines, and the line number reported could end up
being very different than the line actually causing an exception.