Unmemorize committed phrase by pressing backspace within 3 seconds.
rewrite user_id during user dict backup/restore.
create snapshot files in sync_dir.
always setup user_id and sync_dir before user dict sync.
bug-fix: moving cursor left by syllable didn't work for simpified candidate.
RimeSyncUserData() = backup config files + sync user dict.
fix file path operation in TreeDb::RecoverFromSnapshot() and UserDictManager::UpgradeUserDict().
build scripts: supporting static build with thirdparty libs on linux.
update ChangeLog.
deployer: minimize the chance of race conditions.
fix a crash on synching data to an inaccessible device.
[Mac] fix: Command(Super)+Shift cases toggling ascii mode.
ascii_composer: toggle ascii mode with CapsLock key.
user_dict_manager(UserDictManager::Restore): fix miscalculation.
user_dictionary: zeroing tick was causing problems; fix rocketing d-values.
Rime 0.9.7 release.
support option 'ascii_composer/switch_key/Caps_Lock'.
add global option 'ascii_composer/good_old_caps_lock'.
Fixed a boost-related crash.

In rime::Deployer::JoinMaintenanceThread(), the call
to boost::thread::join() may cause application to crash
if the thread is not joinable (i.e. not-a-thread, or thread
terminated).

However, it seems that this situtaion only occur with the
recent version of boost (without C++11, with multithread,
with BOOST_THREAD_TRROW_IF_PRECONDITION_NOT_SATISFIED
marco defined by default).
Merge pull request #2 from lembacon/master

Fixed a boost-related crash