use table variables in OUTPUT to keep triggers working in MSSQL

Sadly MSSQL requires one to use OUTPUT INTO when working with a table
that has triggers defined. This requires us to use a temp table or table
variable, which in turn requires us to know the datatype for columns
being OUTPUT. For now we've restricted output() quite a bit to require
schema and keep things simple. This is probably fine, but if there's
a need for more flexible output()ing we'll handle it later.