use password sha1 as raw password
complete SQLiteDatastore block/unblockOtherThread logic
complete PasswordChanger implementation
change IDataStore interface onInit->preCheck   onDestroy->none

datastore is open dummy, and close per-thread, so no need to onInit/onDestroy
use PlatformAbstract to get/set datastore password
refine Password Changer and related stuff
import clean
improve DesktopPlatform
SQLiteDataStore.preCheck do threadRecycle
update slf4j
add test for PasswordChanger and DesktopPlatform
fix wrong block checking statement
fix wrong temp_rename file name
improve DesktopPlatform robust and log
import clean
fix wrong sql