Reprepare cassandra 2.x style batch if batch fails due to unprepared statement

I made a new PR with less commits. All this does is if a batch query was not prepared, it deletes the query from gocql's cache, then resends the batch (this has the side effect of also re-preparing the failed statement).