fix memory leak in bind_blob

In the bind_blob method, the arguments that were passed into
ReleaseByteArrayElements made absolutely no sense, but caused neither a
compiler error nor a runtime error. They did, however, cause a memory
leak since they native byte arrays that were being heap allocated were
never freed.
fix blob type

The previous implementation broke the equals operator for SqlValue case
classes. Arrays get compared by object while Seqs get compared
elementwise. Before this change, the following could occur

val x = SqlBlob("foo".getBytes)
val y = SqlBlob("foo".getBytes)
x == y -> false

Now since each byte in the sequence gets compared, the x == y comparison
returns true (scala implicitly converts Array[Byte] to Seq[Byte] in the
SqlBlob constructor).

Since toBlob now returns a Seq, rather than an Array[Byte],
it may be necessary to make replacements like

val x = row(0).toBlob =>
val x = row(0).toBlob.toArray

but generally only if one needs to call a Java function that takes a
byte[] argument.
SqliteDb.scala -- fix spacing in error message
Sqlite3C.cc: bind blobs as text

It turns out that using sqlite3_bind_blob to insert a column into an
Sqlite database causes the Sqlite vdb to treat the column as a blob
column. This is generally not desirable because it won't properly handle
string comparisons of text columns. As an example, the following code
won't work as expected:

scala> val db = new SqliteDb(":memory")
db: org.srhea.scalaqlite.SqliteDb = org.srhea.scalaqlite.SqliteDb@126828b
scala> db.execute("CREATE TEMP TABLE foo (i INT, t TEXT)")
scala> db.prepare("INSERT INTO foo (i, t) VALUES (0, ?1)") { stmt =>
         stmt.execute(SqlBlob("bar".map(_.toByte)))
       }
scala> db.foreachRow("SELECT * FROM foo")(println)
Vector(0, bar)
scala> db.foreachRow("SELECT COUNT(*) FROM foo WHERE t = 'bar'")(println)
Vector(0)

With libscalaqlite built with this change, the last query returns
Vector(1) as expected.

Note that it is still possible to get the SqliteDb to interpret the
result of an insert as a blob. It now just requires that a blob literal
is used:
db.execute("INSERT INTO foo (i, t) VALUES (1, X'626172')")
db.foreachRow("SELECT * FROM foo")(println)
Vector(0, bar)
Vector(1, bar)
db.foreachRow("SELECT COUNT(*) FROM foo WHERE t = 'bar'")(println)
Vector(1)
SqliteDbSpec.scala: add test for binding SqlBlobs

This test makes sure that a blob column that is inserted as a bound
parameter is interpreted by Sqlite as a text column if it is composed of
printable characters.
Merge pull request #7 from eatkins/blob

Looks good!