Add NotNull attribute and support for extended error codes.

Fixes praeclarum/sqlite-net#187

Merged-by: Øystein Krog <oystein.krog@gmail.com>
Fix errors related to notnull (due to missing functions) in platform packages.
If a [MaxLength] attribute is not set on a string property, don't limit the size of the varchar

Merged-by: Øystein Krog <oystein.krog@gmail.com>
Remove dead code (leftover from previous commit which removed the default varchar limit)
Support for DateTimeOffset.

Merged-by: Øystein Krog <oystein.krog@gmail.com>
Fix SQL errors when using a blob as a search criterion

Merged-by: Øystein Krog <oystein.krog@gmail.com>
Add missing UpdateAllAsync method similar to InsertAllAsync.

Usage is the same as InsertAllAsync

Conflicts:
	src/SQLiteAsync.cs

Merged-by: Øystein Krog <oystein.krog@gmail.com>
Added 2 new CreateIndex() methods which take a string[] columnNames argument.

This is just a much much much cleaner way of providing an API that is meant
to index an array of columns in a table.

Also fixed the gross hack that CreateTable() was using in order to index
multiple columns by using the new API.

Merged-by: Øystein Krog <oystein.krog@gmail.com>
Use default value of T in ExecuteScalar when column type is Null

When executing a SUM query the method throws NullReferenceException if the
table is empty or no rows were selected by the WHERE clause or similar.
In these cases SQLite3.ColumnType returns ColType.Null, ReadCol returns null,
and the attempted cast to T throws the exception.

This fixes koush/sqlite-net#171.

Conflicts:
	src/SQLite.cs

Merged-by: Øystein Krog <oystein.krog@gmail.com>