Turn `SqliteValue` into a wrapper around `sqlite_value`
Turn `SqliteValue` into a wrapper around `sqlite_value`

SQLite user defined functions end up getting a `**sqlite3_value` as
their argument. We want function registration to play nice with
`FromSql`, but there's no way to do that as long as `Sqlite::RawValue`
is a wrapper around `sqlite3_stmt`.

Note that using `sqlite3_column_value` in this way is something the
SQLite docs consider to be unsafe. This returns an "unprotected" value
object, which means that there's no mutex being held, and that these
operations are not thread safe. This is fine, as we know that these
values can never be shared across threads, because they're not `Sync`.

diesel-rs/diesel,sgrif/diesel,sgrif/diesel,diesel-rs/diesel