Added a uniqueness constraint on fact_values table on fact_name_id and host_id

- Host::Base#merge_facts now assumes single-value facts
- added tests
- fixed an issue around fact value updates