Statement now stores the status of the last operation.

I've added mLastStatus to the pointer class and set it during statement operations. So the pointer destructor can check the return result of finalize against the last statement status. It then only asserts if there is an error and it is different to the last statement error