Consistent setindex! on zero-row DataFrames, and with scalars

`zero_row_df[:col] = scalar` no longer creates column-length inconsistencies.
`df = DataFrame(a=1, b=2); df[9, :b] = 1` now throws an error instead of changing `df[1, :b]`.
`df = DataFrame(a=1, b=2); df[1, :b] = 1.1` now throws an error instead of filling in `NA`.