medialibrary: Clarify the drag and drop handler
previewers: Do not fail if thumbnail timestamp is not the requested one

We should not miserably fail if the video thumbnail's timestamp is
not the exact requested one. Instead we try to figure out what the
timestamp means.
previewers: Optimize thumbnails reuse
previewers: Pythonic thumbnail time iteration
previewers: Implement TODO of using misc.quantize
misc: Rewrite binary_search and fix the test
previewers: Use the new binary_search method
previewers: Expect the keys method to return an iterable
previewers: Update comment about thumbnail time nanosecond precision
previewers: Reuse local variable
previewers: Consistent code format
previewers: Extract a method for getting the thumb duration
previewers: Set the thumbnail pixbuf in a single place
previewers: Use the requested timestamp when caching the thumbnail
previewers: Pythonic timestamps queue generation
previewers: Make PreviewGenerator.manager private
previewers: Clarify WAVEFORMS_CPU_USAGE usage
previewers: Remove duplicated CPU tracking code
previewers: Explain what can be done when the thumbnail is already set
misc: Rename print_ns to format_ns