add sqlite3_changes native function

This function can be used to get the number of rows inserted or updated
by the last executed statement.
SqliteDb.scala: remove SqlInt type (breaks legacy compatibility)

The SqlInt type was unnecessary and made it difficult to do pattern
matching on the results of queries because you had to handle both
SqlLong and SqlInt. For example, before you would have had to write
code like:

db.foreachRow("SELECT x FROM foo") {
  case Seq(SqlInt(x)) => println(x)
  case Seq(SqlLong(x)) => println(x)
}

to take advantage of case class extractors.

Now you can do:
db.foreahRow("SELECT * FROM foo") { case Seq(SqlLong(x)) => println(x) }

This change breaks compatibility with an legacy code that uses SqlInt.
Sqlite3C.scala: remove arguments for SqlNull

Scala 2.11 deprecates case classes without argument lists. It also seems
cleaner semantically to have SqlNull not take any arguments.
SqliteDb.scala: change SqlNull to case object

Since there are no arguments to the constructor of SqlNull, it makes
more sense for it to be a case object rather than a case class.
SqliteDbSpec.scala: add test that SqlNulls work
add perf test
while loop
2.10
blah