fixes for recent ffmpeg
ItemInfo fixups.

Replaced the constant_value code with simply putting defaults in
ItemInfoBase.  Fixed the test in item track and added a test for
SharingItemInfo.
Added DBErrorItemInfo

We use DBErrorItemInfo when we get a DatabaseError while fetching
rows.
Merge remote-tracking branch 'upstream/master'
Database Error refactoring

Added code to handle database errors in the frontend as well as the
backend.  This is pretty tricky for a couple reasons:

- Errors can happen in both threads at the same time, or near in time
  to one and other.  In that case, we don't want to show 2 dialog
  windows.
- On GTK at least, we can have additional errors happen while waiting
  for the user choice for our first dialog window (for example, a
  timeout fires for the ItemTracker code).

Here's how we handle it:
- The backend system stays pretty much the same.  It asks the frontend
  to show a dialog and blocks until that dialog is responded to.  The
  only difference is that we use a special Dialog subclass.
- If we get an error in the frontend, then we show a similar dialog
  and if the user selects retry we run a callback function to recover
  from the error.  This should handles nested errors okay.  (The
  actual recovery code is yet to be written.)
- We avoid showing multiple dialog windows at once and instead reuse the
  response from the first dialog.

Added a frontend class that defines a generic API that frontends can
present to the portable code.  Right now it's just one function, but
it seems like it could be useful now that we have more portable code
running in the frontend thread.

Slight fix for show_choice_dialog().  If the user closes the dialog,
then we return None.

Made the backend code always check for sqlite3.DatabaseError.  I think
the best error since it's very general, but won't catch interface
errors (for example syntax errors).
Added simpler way to define menu items.

Right now only the dev menu uses it, but we could convert the other
code pretty easily.
Use wait to show the db error dialog

Otherwise we have a weird situation in the frontend thread.  The first
call to run_dialog() blocks, but subsequent calls don't.
Added menu item to test frontend database errors

Made wrapper class for sqlite3 Connections.  Otherwise, we can't
replace the execute method.

Implemented error recovery code for ItemTracker.

Fix for DBErorrItem info.  Put the id in row_data so that it's taken
into account in the equals method.
Merge remote-tracking branch 'upstream/master'
Fix for starting frontends in miro.real.

Our exception handling was pretty strange.  For the cli frontend it
was catching an import error that happened inside the frontend startup
code, and calling startapp() again.  I think the new way should work
better.
CLI frontend fixes

Don't setup the movie_data_program_info anymore, we don't use that
value.

Don't run the DonateManager on non-widgets frontends.

Fix for item.download_progress() method.
Keep trying to fix travis.

This time, I'm adding back in the virtualenv command, but pointing it
at the right folder.
bz19467: fix attribute names in the converter code
Fixed conversion item list

Rewrote the code now that InfoListRenderer doesn't exist.  It actually
seems cleaner to just use a simple TableModel for this task.
Removed ItemRendererBase class

Since it only has 1 subclass we can just merge the code.
Fix for deleting multiple items
Fixes for the FixedListStore model.

Added iter_is_valid() method.
Fixed ItemList.__len__() method.

Both of these are needed to make drag and drop work.
bz19414: Re-implemented playlist display

Added some new code to handle playlist ordering/reordering.
bz19731: fix typo.

Thanks Geoffrey Lee!
bz1712: bump max_connections on ShareConnectionPool