Simplify the implementation of `BatchInsertValues` a bit
Simplify the implementation of `BatchInsertValues` a bit

This started when I noticed that the phantom `DB` on `BatchInsertValues`
was redundant, and I wanted to see if I could get rid of the phantom
table as well. I also noticed that we could unify the slice/vec impls
into one (though we may remove this later if the blanket impl is causing
conflict).

This change does mean that we're allocating an intermediate vec that we
weren't before, but I'm not overly concerned about that. We could make
this 0 allocation by changing `BatchInsertValues` to work with `Iterator
+ Clone`, but that means that we have to reference the type
`iter::Map<Iter::IntoIter, fn(Iter::Item) -> <Iter::Item as
Insertable<T, DB>>::Values>`, *and* we also need an explicit cast on
`Insertable::values`, because it's apparently a "fn item" not a "fn
pointer", and it doesn't coerce automatically. The code is a good bit
less clear, so I'm fine with paying the cost of the intermediate vec.

sgrif/diesel,diesel-rs/diesel,sgrif/diesel,diesel-rs/diesel