bz19958: fixed conversion menu.

Made a new way of handling the conversion items.  Now the backend
sends a list of (identifier, title) tuples to the frontend.  I think
this is cleaner than the frontend accessing conversion_manager.
Made the item context menu use the same system as the conversion menu
Fixed some side issues of #19939

If the we see a relative Location: header, then don't consider that an
invalid redirect (although it technically is).  Instead, just log a
warning and continue.

Don't consider InvalidRedirect and TooManyRedirects a connection
error.
Removed the path parameter from the row-expanded/row-collapsed signals

We weren't using it, and on OSX it was just a bogus value anyway.
New method of calculating TableView heights

For some reason the old one wasn't working on 10.8 all the time (see #19920).
This fixes the issue.
Bumping windows binary kit version
Fixed method signature in on_row_expanded_change()
bz19847: workarounds for the issue

I'm not sure how it happened, but it seems that there was a path in
the metadata_status table, that didn't correspond to a filename in the
device_item table.  Made a couple changes to work around this:

  - If we fail creating a DeviceItem in scan_device_for_files(), the
    we log a warning and continue instead of crashing.
  - Before scan_device_for_files() runs, remove data from the metadata
    tables that doesn't have a corresponding filename in device_item
Allow more time for movie data to run in the unittests
Hack to work around #19905
bz19963: avoid crash on QuerySyncInfo when our device DB is closed

Moved the code to handle QuerySyncInfo() from the backend message
handler to DeviceSyncManager.
Fix for converting old device databases and the json module