Typed rows via manual assembly

Hey,

closes #1

I think this is a decent implementation as it allows for multiple rows to be added as a result with a fairly simple API.

Here's how it looks:

```
	rs := NewRows([]string{"id", "time", "a_boolean"})
	rs.AddRow(5, time.Now, true)

	ExpectQuery("SELECT (.+) FROM sales WHERE id = ?").
		WithArgs(5).
		WillReturnRows(rs)
```

Allowing rows to be generated by function calls could make a good future improvement, but I only need a single row for all my current tests and this works nicely.