use stricter sqlite3 locking to make sqlfs reliable under load

use sqlite3 'exclusive' locking on all transactions.  This was always
enabled for libfuse mode, where it worked well.  Since we were having
problems in standalone mode, this change seems to have fixed them.

Future work: figure out how to use better locking for more concurrency
use sqlcipher header in sqlfs_internal.h also
make Android version of show_msg() so it sends to logcat
replace fprintf with show_msg everywhere so all messages can be redirected
fix issues with generating the string for new paths

* char[] is like a char* so no need for & as in &new_path
* ensure that the last strncat does not overrun its buffer
fix all "pointer targets in assignment differ in signedness" warnings

sqlite3_column_text() returns a const unsigned char* to be extra careful
when supporting all platforms, since char is not guaranteed to be unsigned
but we only care about sane platforms where char is unsigned, so just cast
to const char*
comment out all xattr stubs, we don't use xattrs nor need to implement them
in get_value(), init size to 0 in case the database is busy

This also gets rid of this warning:
sqlfs.c:1482:32: error: 'size' may be used uninitialized in this function
fix compiler warnings in the tests