server: ftfy for bad incoming text
client: scan & cache all known ebook formats
client: only decrypt/sync is_valid formats
server: better checking for, and handling of, duplicates on sync
server: track filehash of original ebook uploaded for duplicate check on sync
server: increment popularity on incoming duplicate
server: basic DB exception handling
server: switch to next() and iter() on filter queries
tests: minor fixes and renamed sync tests
tests: sync test for matching ogre_ids
tests: owner not needed in any tests
server: refactored code into _create_new_ebook method
server: deduplicate on authortitle, dont allow multiple versions from same user