Overview: Replace table of buttons with IconView

This puts the basic functionality in place.  However, the icons are a
fixed size, and a lot of the old sizing code is sitting around unused.
Overview: Choose icon size to fit overview on screen

This is a simplistic algorithm that only considers sizes that fit
exactly into the width of the view.  Larger icons that would fit with
more rows and fewer columns, but would not fill width, are missed.
Overview: Choose largest icon size that still prevents scrolling
Overview: Provide gray placeholder icons
Overview: Keep track of selection

We need to update the slide count and keep the user from selecting
nothing.
Overview: Clean up some cruft
Overview: Change icon renderer

Add CellRendererHighlight, which slightly dims all but the selected
icons.  We don't need the visible selection around this, so we set the
padding to 0.
Overview: Center icons in available space

This is accomplished by making Overview into a Gtk.Alignment that
contains a ScrolledWindow.  The ScrolledWindow makes a size request to
be just big enough to hold all of the icons, and the Alignment manages
the space around it to center it.

For some reason, the vertical scrollbar of the ScrolledWindow is
triggered whether it is needed or not.  So we set its policy to NEVER
when we're sure we have enough room and to AUTOMATIC when we think we
don't.
Overview: Let left/right arrows wrap around

For consistency with the main UI.
Overview: Mouse motion over IconView restores mouse cursor

The IconView apparently traps mouse motion events, not letting them
trigger the code in Fullscreen to cause the cursor to reappear.  So we
connect up signals so that this code is called.
Overview: Change current_slide to property
Overview: Enable better mouse control

Mouse motion now sets the selection and a left click goes back to the
main view.  Actually, it's the button release that does this.  This
means if you click and drag, you'll be taken to the slide where you
release the button.  I don't know if this is desired or not.
Overview: Render icons as soon as we can

Also, make sure we only have a single idle function rendering previews.
Overview: Don't redo the structure when changing overlays

When changing the overlay settings in the overview, we will only be
removing slides.  Therefore, we don't need to redo the structure and
re-render all of the icons -- we can just cut that slide out off the
ListStore.  We might get a slightly sub-optimal arrangement, but that's
better than rearranging everything.  The next time the overview is
hidden, we'll get it set up all pretty again.
Overview: Allow for another pixel in margin

You can sometimes get a 1px movement as you move the selection all the
way to the edges.  Presumably there's a little extra space we're not
accounting for, and we're getting a bit of scrolling.  This seems to fix
it.
Overview: Set slides_view.columns to set width

This lets the standard size-requisition system do its magic and make
the ScrolledWindow be the right size.  This does mean that the scrollbar
may not be all the way to the right edge of the window.

Also, undo the mystery pixel in the margin calculation.
Overview: Document fill_structure algorithm
Merge branch 'master' into overview
Solved layout issues (all, I hope)

- The overview is now centered externally
- In the overview the scrollbar is activated automatically
- The slides are now centered
- The scrollbar for the notes is now also black&white
Removed the image setting for gtk buttons

As we do not use buttons any more