fix bug in history db, refactor message history, fix transfer IDs and add handlers for them

1. fix db history insertion
When blight receives two or more messages (from single contact) within a second it causes query-exec to throw exception, because new entry is added to DB with duplicate three fields which causes INDEX UNIQUE to error.
 changed to use milliseconds for timestamp should handle that.
 tested on both amd64 and x32.
2. refactor message history to separate class
3. fix incorrect transfer IDs handling. and exception handlers for them.