Fix unterminated string when inputs are empty

I was getting the error:
```
[ tup ] [0.120s] Scanning filesystem...
[ tup ] [0.229s] Reading in new environment variables...
[ tup ] [0.347s] Parsing Tupfiles...
* 1) [0.002s] .
tup error: Explicitly named file '??' not found in subdir '.'
tup error: Failed to execute Tupfile.lua:
[string "Tupfile.lua"]:1: Failed to define rule.
stack traceback:
	[C]: in function 'definerule'
	[string "Tupfile.lua"]:1: in main chunk
 [ ] 100%
 *** tup: 1 job failed.
```

for:
```lua
tup.definerule{inputs = {}, outputs = {'hey'}, command = 'echo hey > hey'}
```

Also, I noticed there's no warning if outputs isn't a table.  It might be nice to have that error out, unless there's some reason you didn't want to.