Set internal methods as protected visibility
Improved the performance of bulk inserts
This work will benefit all queries, but the more parameters a query has the bigger the benefit will be
The main change is no longer using array_shift(), as this was rebuilding the array every time, when all we were using it for was working through the array
This can be done much more efficiently using the array pointer functions (reset(), current(), next())
Also added a check to the namedParams() function to not do anything unless we find a name param
Corrected the raw fetch method to issue a raw fetch to the result object