Oilpan: Prepare to move SQLError to oilpan heap.

Without this CL, a SQLError object can be constructed in a database thread,
moved to main/worker thread, and referred by JavaScript object in the
main/worker thread.

We can't move object ownership over threads in Oilpan. So, we should not
construct SQLError objects in a database thread. Unlike the SQLResultSet case
[1], SQLError is created by multiple classes and it's hard to make sure they
create SQLError in a context thread.

So, this CL introduce SQLErrorData, which is an immutable data container. We can
construct a SQLErrorData object in a database thread, and move it to a context
thread, then construct a SQLError with the SQLErrorData object.

Note:
* Change the return type of AbstractSQLStatementBackend::sqlError from
PassRefPtr<SQLError> to SQLErrorData* because the function doesn't release the
ownership of the SQLErrorData object.

[1] https://src.chromium.org/viewvc/blink?revision=169929&view=revision

BUG=347902

Review URL: https://codereview.chromium.org/210833005

git-svn-id: svn://svn.chromium.org/blink/trunk@169989 bbb929c8-8fbe-4397-9dbb-9b2b20218538