Always return the object from update_or_create

Before this change, `update_or_create`ing an existing object with no changes returns `nil`. Now it will always return the object.
Add spec and update docs/CHANGELOG for update_or_create fix

Remove unnecessary proc activation while here.
Fix parsing of dates with jdbc-sqlite3 3.8.7

jdbc-sqlite3 3.8.7 broke the parsing of dates via getDate.  Work
around problem by using getString and doing the string to date
conversion in ruby.

See the following for details:
https://github.com/jruby/activerecord-jdbc-adapter/issues/605
https://bitbucket.org/xerial/sqlite-jdbc/issue/156
Work around regression in jdbc-sqlite3 3.8.7 where empty blobs are returned as nil

getBytes returns nil instead of an 0 length byte[] instance in
jdbc-sqlite3 3.8.7.  Add a wasNull check to catch this an return
an empty blob in that case, idea from Karol Bucek.

Details:
https://github.com/jruby/activerecord-jdbc-adapter/issues/605
https://bitbucket.org/xerial/sqlite-jdbc/issue/155