bz19413: Make ItemInfo.thumbnail a Filename when it comes from a screenshot

Refactored the various path columns to try to make them more consistent.  Now
data straight from the database is <name>_path_unicode and the data
as a FilenameType is <name>_path

The one exception is filename, which is referenced in a bunch of places, so I
didn't want to change it.  Still, I renamed the corresponding attribute to
filename_unicode.
Changed how we handle invalidate_size_request() on OSX

Instead of using a deferred call, just handle it immediately.  I think this is
the simplest way to handle things, the layout process.  We chain
size-request-changed signals to the top-level window which then calls place()
on the content widget for that window and the place() calls cascade down to
the children of each container.

Before there could be issues where we would call invalidate_size_request(),
but defer doing anything.  Before do_invalidate_size_request() was called the
parent of the widget would try to lay it out, which lead to confusion if we
used the wrong size request there.

The new system will occasionally result in nested size-request-changed signals
happenening since place() causes size-allocated and that could trigger
arbitrary code.  I just changed it so that both of those signals were okay to
nest.

Removed the SizeRequestManager code, we don't need it anymore.
bz18863/bz19411: Defer creating a Display object until we need it

Geoff had code that did this before, but it was reverted because it triggered
issues in the OSX layout code.  After the last change it's no longer a
problem.  Re-implementing the solution in a slightly different way than Geoff
did.  This one only uses timer.add() rather than both timer.add() and
call_on_ui_thread().

This also solves 19411.  The issue there was that we were could create many
Display objects, but defer changing to them.  Since the life of an ItemTracker
is tied to the life of a Display, this would result in lots of ItemTrackers
around when we should only have 2 or 3 at most.
bz19429: fix OSX playback
bz19430: Fix download rate column rendering
bz19426: Fix album view rendering on OSX
bz19434: Fix copy item URL function.

I'm not sure why we used to call this attribute file_url, since for feed items
it never is.  In any case, the new name is simple "url".
Fix exception on configure event after our window is already closed.

I'm not sure exactly what causes this, but it just happened to me.  I think
it's safe to just ignore in the case where the window is closed.
bz19425: Fix rendering for torrent downloads

Renamed current_size_text to downloaded_size_text, since the corresponding
attribute is now called downloaded_size.

Added expiration_date_text method and started using it.
Merge pull request #403 from bendk/frontenddatafixes

Frontenddatafixes
Merge pull request #402 from bendk/osxlayout

Osxlayout
Merge pull request #401 from bendk/fix19413

bz19413: Make ItemInfo.thumbnail a Filename when it comes from a screenshot
bz19442: Allow building on OS X 10.8.

Update the static check in the build scripts so we can build on
OS X 10.8 too.
bz19441: Relink the py2app application stub with Cocoa and AppKit.

Seems that the sandbox has some trouble finding sandbox services
unless these libraries are dynamically linked in right from the
start in the main executable of the application bundle.
Clean up the scroller layout code a bit.

Clean up the size calculation for the overlay and legacy scroller styles.
Merge pull request #404 from geoffl/bz19442

bz19442: Allow building on OS X 10.8.
Merge pull request #405 from geoffl/bz19441

bz19441: Relink the py2app application stub with Cocoa and AppKit.
Merge pull request #406 from geoffl/scrollercleanup

Clean up the scroller layout code a bit.
bz19464: Fix deprecated messages.

Some APIs have been deprecated but they are particularly obnoxious
with spamming the console with deprecation messages.  In the
interest of mitigating this the said APIs have been migrated to
new style APIs.
bz19450: don't create the focus-out signal twice on OSX

It's already created in the base Widget class, so we don't need to also create
it in MultiLineTextEntry.