selector: use Schema::select_keys() instead of reading config on initialization.

thus enabling dynamically changing select keys via Schema::set_select_keys().
comparing candidates from different translators.
fix warnings.
introducing schema_list_translator and switch_translator.
key_binder: supporting hotkey switch.

the alterered state is local to the input session and will not be memorized.
key_binder: order bindings of the same key by strictness of condition.

more efficient matching against key events;
avoid repeating key bindings in bopomofo, where overlapping key bindings  for '-' with different conditions exist.
fix dictionary test.

in data/test/dictionary_test.dict.yaml: the value of dictionary: does not match the first part of the file name before the dot. This rule is now enforced by the dictionary file searching stategy during dictionary compilation.
add cmake option BUILD_TEST.

thanks to dennis.yxun for the patch.
tsv: fix reading snapshot file with DOS line endings. (googlecode Issue 431)
key_binder: 'select' command.

select: .next  # select next schema
select: schema_id  # select specified schema
schema_list_translator: sort schema list by last access time, desc.
simplifier: add option 'simplifier/excluded_types', skip candidates of certain types.
user_db: increase the upperbound of density to 10000, to keep candidates topmost.