Fixes issue #338. (SqlBulkInserter breaks when the records aren't homogenous)

I've also added a couple tests for this, but I had to end up added a table specifically for these tests because none of the existing tables had enough optional columns.  I also didn't realize until a bit late that the db isn't reset before each test only before each set of tests so I added `DatabaseHelper.Reset()` to those two tests.  If you'd prefer the tests formatted in a different way, just let me know.

Thanks,

Matt