cmd/llgo-build: Don't add .bc to output

Instead, we now build in a temporary location
and rename/move to the output location.
Handle non-defining assignment in range statements

Also, additional error checking in runtime.strnext.

These changes enable the successful execution of
go/test/stringrange.go.