Make sure statements that are added to a batch are prepared

When executing a prepared statement it will make sure that it's prepared on the connection before sending the request, but when a prepared statement is added to a batch it doesn't do this check, instead it raises a NotPreparedError. With this patch the batch will prepare any unprepared statements before sending the batch request.

This fixes #117